将从api请求接收的数据传递到指令范围

时间:2015-12-15 21:25:14

标签: angularjs angularjs-directive

我正在使用Angular 1.4.2,并且我已经创建了一个我在其中一个网页上使用的指令。获取服务的页面包含指令作为页面上的元素,通过HTTP发出API请求以获取资源,我想将此资源传递给指令的范围,如此...

<custom-element obj="myController.obj">
</custom-element>

我的指令代码看起来像这样......

angularModule
.directive("customElement", function(){
    return {
        restrict: "E",
        controller: "dirController",
        scope: {
            obj: "="
        }
    }
});

该指令将在其范围内接收 obj

如果我尝试在 dirController 中访问它,该对象是未定义的,我相信这是因为在API请求之前呈现并创建了页面(以及从指令创建的元素)完了。我想知道传递从API请求收到的对象并将其传递到 customeElement 的隔离范围的最佳方法是什么。

1 个答案:

答案 0 :(得分:2)

// EDITED

我也很喜欢这种问题,你可以在你的指令控制器中使用这样的东西来等待你的&#34; obj&#34;对象已经实例化(例如通过异步调用):

$scope.$watch('obj', function(newValue) {
  if(newValue != undefined){
    // do what you want her
  } 
});