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