Angularjs 当需要通过web服务的属性时,如何构建指令模板

Angularjs 当需要通过web服务的属性时,如何构建指令模板,angularjs,angularjs-directive,Angularjs,Angularjs Directive,基本上,我需要构建一个控件,但在构建html之前,我需要来自web服务的详细信息。正确的方法是什么 下面是我目前的情况,但我不确定这是否正确,或者我是否应该使用控制器,WebService.get()方法是否应该在指令的link方法中 非常感谢您的建议/意见 App.directive('myDirective', ['WebService', '$compile', function (WebService, $compile) { 'use strict'; return

基本上,我需要构建一个控件,但在构建html之前,我需要来自web服务的详细信息。正确的方法是什么

下面是我目前的情况,但我不确定这是否正确,或者我是否应该使用控制器,WebService.get()方法是否应该在指令的link方法中

非常感谢您的建议/意见

App.directive('myDirective', ['WebService', '$compile', function (WebService, $compile) {
    'use strict';

    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            // get my data from the server
            WebService.get().then(function(columns) {

                var html = '';

                // add some html here
                // ....

                // loop through some server data
                for (var i = 0; i < columns.length; i++) {
                    html += '<td>' + columns.name + '</td>;
                }

                // build rest of html here
                // ....

                // compile the html for angular use
                html = $compile(html)(scope);

                // set element html
                element.html(html);

            });

        }
    };
}]);
App.directive('myDirective',['WebService','$compile',函数(WebService,$compile){
"严格使用",;
返回{
限制:“A”,
链接:函数(范围、元素、属性){
//从服务器获取我的数据
WebService.get().then(函数(列){
var html='';
//在这里添加一些html
// ....
//循环浏览一些服务器数据
对于(var i=0;i
您应该在模板中放置一个ng repeat,从指令作用域读取一些数组。好的,但是从性能的角度看这是否好?ng repeat将监视我的范围值(例如$scope.columns),但这些值永远不会更改。WebService.get()是否也应该在link函数中?如果它永远不会出现,那么手表就不会有问题。您可以从外部传递值,也可以从指令内部调用WebService。