[英]AngularJS : Passing value from directive to controller
很抱歉重复这个问题。 但是我发现了一些有用的东西并进行了更新。
这是我的指令:
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对象。
我想从在onRegionClick
获得的城市代码中打印出人口计数,并将其传递给控制器,然后最终使用该代码从JSON获取数据。
请帮助我。 因为我不是很认真,所以我不明白如何将参数值从指令传递给控制器。
在我的HTML中,我从控制器中创建的变量中使用了这样的表达式。
{{ cities.AL.name }}
它的工作正常。 但是我想用从onRegionClick
获得的代码替换AL
。
提前致谢。
如何使用过滤器? 也许您可以使用角度默认过滤器并显示过滤后的数据。
json:
{
{
"code": "US-AL",
"name": "Alabama",
"population": 4833722
}, {
"code": "US-AK",
"name": "Alaska",
"population": 735132
}
}
的HTML:
<tr ng-repeat="city in cities | filter:inputCode">
<td>{{city.name}}</td>
</tr>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.