在ng-repeat中具有动态字段名称的自定义指令

时间:2015-01-10 19:35:17

标签: javascript angularjs html5

我在angularjs中创建可重用的自定义指令,我希望将ng-repeate项目的fieldName作为属性传递。我的所有范围都是孤立的

我的指令代码部分如下

<div class="list">
   <label ng-repeat="item in items" class="item item-text-wrap">
       {{item.City}}
   </label>
</div>

在上面的代码中,我传递fieldName硬编码,但我想通过属性传递City(即字段名称) 我的自定义指令

<custom-select items="deptStations" drop-down-field="City"></custom-select>
上述项目中的

由来自控制器的http服务传递

.controller('Ctrl', function($scope, $http) {
  $http.get("http://www.xxxx.com/_api/lists/getbytitle('XXX')/items?$select=Id,City_Code,City&$filter=Active eq 1&$orderby=City asc", {
    headers: {
      Accept : "application/json;odata=verbose"
    }
  }).then(function(resp) {
    $scope.deptStations = resp.data.d.results;
  }, function (err) {
    console.log(err);
  });
});

所以这里的想法是我想传递下拉字段,我想传递我的指令。是否可能,如果是,那么如何?

1 个答案:

答案 0 :(得分:0)

我认为以下代码可以解决您的问题

angular.module("module").directive("customSelect", function(){
  return{
    scope : {
      dropDownField : '@',
      items : '='
    };
  };
});
<div class="list">
   <label ng-repeat="item in items" class="item item-text-wrap">
       {{item[dropDownField]}}
   </label>
</div>