Javascript AngularJS:将值从指令传递给控制器

Javascript AngularJS:将值从指令传递给控制器,javascript,json,angularjs,Javascript,Json,Angularjs,抱歉重复了这个问题。但我发现了一些有用的东西,并用它进行了更新 这是我的指示: App.directive('mapUsa', [function() { return { restrict: 'A', link: function(scope, element, attrs) { element.vectorMap({ map: 'us_aea_en', backgroundColor: 'transpare

抱歉重复了这个问题。但我发现了一些有用的东西,并用它进行了更新

这是我的指示:

App.directive('mapUsa', [function() {

return {

    restrict: 'A',
    link: function(scope, element, attrs) {

        element.vectorMap({
            map: 'us_aea_en',
            backgroundColor: 'transparent',
            zoomButtons: false,
            regionStyle: {
                initial: {
                    fill: '#343434' 
                },
                hover: {
                    fill: '#242424'
                }
            },
            markerStyle: {
                initial: {
                    fill: '#F0A518',
                    stroke: '#F0A518',
                }
            },
            onRegionClick: function(event, code) {

            },
            markers: [
                {latLng: [37.78, -122.41], name: 'San Francisco', style: {r: 10}},
                {latLng: [40.71, -74], name: 'New York City', style: {r: 15}},
                {latLng: [41.89, -87.62], name: 'Chicago', style: {r: 5}},
                {latLng: [34.00, -118.25], name: 'Los Angeles', style: {r: 20}},
                {latLng: [34.00, -106.00], name: 'New Mexico', style: {r: 10}},
                {latLng: [44.50, -100.00], name: 'South Dakota', style: {r: 13}},
                {latLng: [25.78, -80.22], name: 'Miami', style: {r: 7}},
            ]
        });

    },
    controller: ['$scope', 'citiesData', function($scope, citiesData) {

        citiesData.getCitiesData()

        .then(function(data) {
            $scope.cities = data;

        }, function(errorStatus) {
            $scope.errorStatus = errorStatus;
        })



    }]

}

}])
在我的控制器中,我加载了一个json文件,当然我可以使用角度表达式通过HTML访问它

但是现在在onRegionClick上,每当我点击一个区域时,我就会得到城市的代码

这就是JSON的样子

{ "US-AL": { "name": "Alabama", "population": 4833722 }, "US-AK": { "name": "Alaska", "population": 735132 }
我使用从onRegionClick获得的代码创建了JSON对象

我想从我在RegionClick上获取的城市代码中打印人口计数,并将控制器传递给它,最后使用该代码从JSON获取数据

请帮我解决这个问题。因为我不是很认真,所以无法理解如何将参数值从指令传递给控制器

{{ cities.AL.name }}
在我的HTML中,我从控制器中创建的变量中使用了这样的表达式

{{ cities.AL.name }}
这是ofc运作良好。但我想用从onRegionClick获得的代码替换AL


提前谢谢。

使用过滤器怎么样?也许您可以使用角度默认过滤器并显示过滤后的数据

json:

html:


你试过我对你另一个问题的回答吗?对这对我不起作用。很抱歉没有回复。对象通常可以使用事件相互通信。Angular在scope和rootScope上提供了发射器/侦听器方法,可以使用这些方法。与$on、$emit、$brodcast一样。请参阅以了解$emit和$broadcast之间的差异。我尝试了以下onRegionClick:functionevent,代码{scope.cityCode=code console.logscope.cityCode;},实际上每当我单击区域时,它都会在控制台中输出城市代码。但是我无法使用角度表达式访问cityCode。我的json看起来不像,我想访问onRegionClick上的代码参数。那么$rootScope如何?在指令中添加$rootScope?
<tr ng-repeat="city in cities | filter:inputCode">
   <td>{{city.name}}</td>
</tr>