2013-05-18 208 views
0

我想了解如何通過我的指令傳遞數據,以便我可以將它綁定在視圖級別。我相信我理解控制器範圍與指令隔離範圍的分離,但我似乎無法得到我認爲的簡單json結果。我的JSFiddle可以在這裏找到http://jsfiddle.net/jamesamuir/2KLVj/4/AngularJS指令和隔離範圍

app.directive('testList', function (testService) { 
    return { 
     restrict: 'A', 

     link: function ($scope, element, attrs) { 

      $scope.name = 'isolate scope'; 
      $scope.data = {}; 
      $scope.data.loadtext = testService.getJSON().then(function (data) { 
       alert(data); 
       element.addClass("red"); 

      }); 
     } 
    } 
}); 

在我看來,這應該工作,但唉,它沒有。任何幫助將不勝感激。

回答

2

裏面你then()回調,分配給datadata.loadtext

testService.getJSON().then(function (data) { 
    alert(data); 
    element.addClass("red"); 
    scope.data.loadtext = data; 
}); 

fiddle

+3

由於'從一個承諾return'ing創造與價值新的承諾,以及AngularJS查看系統可以綁定爲了保證,在'then>回調結束時添加'return data;'也是可行的(因爲在調用'then'時有一個賦值)。也就是說,我相信明確地設定數據而不是創造新的承諾會更好。 –