我有一个角度指令的代码:
directive('searchTerms', ['$http', function ($http) {
return {
scope: { model: "=ngModel", metaDataUrl: "@metaData" },
templateUrl: 'infohelper/SearchTermsTemplate',
link: function ($scope) {...}
controller: function ($scope) {...}
}
}
对于指令的每次使用,都会将另一个URL传递给$scope
变量metaDataUrl
。基于不同的元数据应该通过$http
服务加载。我的问题是:如何确保在link
函数之前加载元数据?是否有类似于resolve
服务中$routeProvider
选项的内容可用于指令?
答案 0 :(得分:1)
$http
会返回一个承诺,因此您可以在链接功能准备就绪后异步管理响应。
如果没有,您可以在链接功能中声明一个观察者。
看一下这篇文章:Angular: running function in controller when all directives are loaded
这与你的情况略有不同,但应该对你有帮助。