使用指令范围中的参数从Angular Directive中加载服务数据

时间:2015-12-21 17:34:52

标签: javascript angularjs angularjs-directive angular-directive

我有一个角度指令的代码:

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选项的内容可用于指令?

1 个答案:

答案 0 :(得分:1)

$http会返回一个承诺,因此您可以在链接功能准备就绪后异步管理响应。

如果没有,您可以在链接功能中声明一个观察者。

看一下这篇文章:Angular: running function in controller when all directives are loaded

这与你的情况略有不同,但应该对你有帮助。

另外,您应该阅读:https://github.com/angular/angular.js/issues/2095