2013-05-18 43 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'时有一个赋值)。也就是说,我相信明确地设定数据而不是创造新的承诺会更好。 –