我创建了一个像我这样使用的指令:
<div car-form car="car" on-submit="createCar(car)"></div>
我在我创建的新页面和编辑页面上使用指令。他们有自己的控制器。在EditCarController
中,我从我创建的RESTful Web服务中检索汽车。我还为指令分配了一个控制器功能(在指令的配置对象中),我根据汽车等设置了一些类别......但是!
由于汽车是从页面控制器异步加载的,因此当指令控制器代码开始运行时,它并不总是(随机)加载。我该如何解决这个问题?我需要确保我传递给指令的汽车已加载。
答案 0 :(得分:1)
您可以在指令的控制器中使用$watch
来了解数据何时从服务器返回。像这样:
$scope.$watch("car", function(newVal) {
if (angular.isDefined(newVal)
{
//get stuff based on car (newVal)
}
});
$watch
将传入undefined
,直到数据从服务器返回,此时您可以对对象执行任何操作