我是angular.js的新手
自定义指令applabel.js
app.directive('applabel', function(service, languageData) {
return {
templateurl: 'label.html',
restrict: 'E',
replace: true,
scope: {
'key': '@',
'default': '@'
},
link: function(scope, elem, attr) {
var data = [{
key: Id,
value: "ID"
}, {
key: name,
value: "Name"
}, {
key: sts,
value: "status"
}];
if (languageData.length == '0') {
service.getData().then(function(result) {
languageData = result.data;
var keyVal = scope.key;
for (var i = 0; i < languageData.length; i++) {
if (keyVal = languageData.length[i].key) {
scope.value = languageData.length[i].value;
} else {
scope.value = scope.default;
}
}
});
}
}
}
});
在languageData中有像数据一样的数组。 我在我的html页面中多次使用此指令
我的html页面是
<applabel key="name" default="Default Name">
</applabel>
<applabel key="Id" default="id">
</applabel>
<applabel key="sts" default="STATUS">
</applabel>
label.html
<label>{{value}}</label>
当我的html页面被渲染时,调用applabel指令,但它的执行周期是不同的。 每次调用我的服务getData方法,但服务器端api都没有被调用。 只有上次我的服务器端api被调用并且值将被替换。所以我对这是一个正确的执行周期有点困惑吗?
我想要的是第一次服务器端api被调用并且结果在languageData中被分配,而不是它的长度不等于&#39; 0&#39;所以没有调用服务和服务器端api。和languageData是我的.constant变量,因此它的值不会改变。
我想要这种类型的执行周期有没有办法实现这个?