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

Load Data from Service in Angular Directive using Parameter from Directive Scope

本文关键字:指令 服务 加载 数据 参数 范围      更新时间:2023-09-26

我有以下角度指令代码:

directive('searchTerms', ['$http', function ($http) {
            return {
                scope: { model: "=ngModel", metaDataUrl: "@metaData" },
                templateUrl: 'infohelper/SearchTermsTemplate',
                link: function ($scope) {...}
                controller: function ($scope) {...}
            }
}

对于指令的每次使用,都会向$scope变量metaDataUrl传递不同的URL。基于此,应该通过$http服务加载不同的元数据。我的问题是:如何确保在link函数之前加载元数据?$routeProvider服务中是否有类似于resolve选项的内容可以用于指令?

$http返回一个promise,因此一旦响应在链接函数中准备好,就可以异步管理它。

如果没有,您可以在链接函数中声明一个观察程序。

看看这篇文章:Angular:当所有指令都加载时,在控制器中运行函数

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

您还应该阅读以下内容:https://github.com/angular/angular.js/issues/2095