将隔离的范围属性动态绑定到数组

时间:2016-12-17 18:53:41

标签: angularjs

我在控制器内创建数组:

$scope.options0=[];
$scope.options1=[];
...
$scope.options9=[];

我使用指令:

myapp.directive('selectedItems',  function() {
    return {   
      scope: {
        temp: '='
      },
      link:function(scope,element){...}
    }
})

并在视图中:

<div selected-items temp="options+$index"></div>

其中$ index来自之前的ng-repeat并获得0到9之间的值。 我想将temp绑定到options0或options1或... ,根据到$ index值。我尝试了所有组合。什么都行不通。任何的想法?

2 个答案:

答案 0 :(得分:1)

您可以使options成为单个对象,而不是一大堆单独的范围属性

$scope.options ={
   '0': []
   '1': [],
   '2': []
}

然后使用[]符号

在视图(或函数)中引用很容易
<div selected-items temp="options[$index]"></div>

答案 1 :(得分:0)

试试这段代码:

$scope.options[0]=[];
$scope.options[1]=[];
...
$scope.options[9]=[];

指令:

myapp.directive('selectedItems',  function() {
    return {   

      link:function($scope){
          console.log($scope.options[$scope.$index])
      }
   }
})

这可能适合你。