在ng-init中设置this.value并从ng-class访问它不起作用

时间:2014-06-27 04:05:27

标签: angularjs ng-class angularjs-ng-init

我试图为ng-repeat创建的元素的子元素附加一个不同的值。

div(ng-repeat=" element in array ")
    div(ng-init=" this.value='zero' " ng-class=" this.value === my.value ? 'match' : 'not' " )
    div(ng-init=" this.value='one1' " ng-class=" this.value === my.value ? 'match' : 'not' " )

$scope.my.value是动态设置的,但如上所示,我想针对this.value对其ng-init中的元素进行硬编码进行测试。

但这并没有给我结果。也许this.value没有附加到元素上。我做错了什么(我不知道为什么我认为 this 会起作用),有没有其他方法可以做我想做的事情?

我想我的问题的症结在于:每个元素都有一个this /等价物,我可以将一些不同的值固定在一起吗?

1 个答案:

答案 0 :(得分:0)

您可以在每个元素上放置一个控制器,并使用$ index:

初始化它们的值

HTML:

<div ng-repeat="element in array" ng-class=" value === my.value ? 'match' : 'not' " 
     ng-controller="elementController"></div>

使用Javascript:

module.controller('elementController', ['$scope', function($scope){
    if($scope.$index == 0){
        $scope.value = 'zero'
    }
    if($scope.$index == 1){
        $scope.value = 'one1'
    }
}]);