单页angular.js中的多个自定义指令

时间:2015-10-26 10:33:25

标签: angularjs angular-directive

我是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变量,因此它的值不会改变。

我想要这种类型的执行周期有没有办法实现这个?

0 个答案:

没有答案