目前,我的应用程序有一个控制器,它接受一个JSON文件,然后使用"ng-repeat“遍历它们。这一切都很好用,但是我还有一个指令需要遍历相同的JSON文件。这带来了一个问题,因为我不能在一个页面上请求相同的JSON文件两次(我也不想这样做,因为这样效率会很低)。如果我更改了其中一个JSON文件的文件名,那么指令和控制器都可以请求和迭代JSON数据。
我想知道的是:将控制器的JSON请求形成的数组传递到指令中的最佳方法是什么?当我已经通过我的控制器访问数组时,我如何将数组传递到我的指令中并遍历它?
控制器
appControllers.controller('dummyCtrl', function ($scope, $http) {
$http.get('locations/locations.json').success(function(data) {
$scope.locations = data;
});
});
HTML
<ul class="list">
<li ng-repeat="location in locations">
<a href="#">{{location.id}}. {{location.name}}</a>
</li>
</ul>
<map></map> //executes a js library
指令(当我使用locations.json以外的文件名时有效,因为我已经请求过一次
.directive('map', function($http) {
return {
restrict: 'E',
replace: true,
template: '<div></div>',
link: function(scope, element, attrs) {
$http.get('locations/locations.json').success(function(data) {
angular.forEach(data.locations, function(location, key){
//do something
});
});
https://stackoverflow.com/questions/21667613
复制相似问题