2015-06-24 94 views
3

我有一個問題,顯示我的控制器傳遞給指令模板的JSON對象數據。這是我的代碼。如何在指令模板中使用ng-repeat Angular JS

指令

app.directive('heroes', function(){ 
    return{ 
     scope:{ 
      heroes: '=' 
     }, 
     template: '<li ng-repeat="x in hereos">{{ x.Name }} </li>', // DOESNT WORK 
     link:function(scope,element,attributes){ 

      }); 
     } 
    } 
}); 

控制器

app.controller('MainController',function($scope, $http){ 
    $scope.getData = function(){ 
      $http({ 
       url: 'js/directives/herolist.php', 
       method: "GET" 
     }).success(function (data) { $scope.heroes = data.records; }) 

    } 
+0

也許你試試$ scope。$ apply()在$ http回調 – scokmen

+0

$ apply是做什麼的?你的意思是$ http。$ apply ?? – drake24

+0

@scokmen $ http將觸發$摘要 –

回答

3

Working Plunkr

你應該在你的HTML指令和重命名你的價值觀有點

HTML可以

<heroes data="heroes"></heroes> 

然後在你的指令,你會怎麼做

scope:{ 
     heroes: '=data' 
    } 

如果你這樣做英雄:「=」,你是不是限制指令來讓我們說一個元素,那麼你基本上包括指令兩次(你不希望那樣)。如果你想使用的英雄作爲一個屬性,這樣

<heroes heroes="heroes"></heroes>

再加入

限制: 「E」

你的指令。

+0

是的。仍然一樣無法顯示 – drake24

+0

檢查更新的答案和工作plunkr – rmuller

+0

謝謝!這工作..只是一個問題.. <英雄數據=「英雄」>我是否總是需要張貼一個「=」英雄「在一個指令的範圍內?這是什麼意思的方式? – drake24

相關問題