我正在使用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 的隔离范围的最佳方法是什么。
答案 0 :(得分:2)
// EDITED
我也很喜欢这种问题,你可以在你的指令控制器中使用这样的东西来等待你的&#34; obj&#34;对象已经实例化(例如通过异步调用):
$scope.$watch('obj', function(newValue) {
if(newValue != undefined){
// do what you want her
}
});