ng-if条件总是失败

时间:2016-06-17 08:50:45

标签: html angularjs

我正在使用AngularJS

 <div ng-repeat="l in kites">
    <a ng-click="findit(l.green.num)">color</a>
   <span ng-if="c_{{l.green.num}} == 'y'>kites is </span>
    </div>

在我的控制器中我有

$scope.cnt=[];
$scope.findit = function(c){
$scope.cnt.push(c);
    angular.forEach($scope.cnt, function(value, key){
        $scope['c_'+value] = 'y' ;

    })
}

我的问题是,即使条件失败,我也没有得到跨度值。 表示l.green.num为5,c_5 ='y'。但是if条件不接受它。请帮我。

2 个答案:

答案 0 :(得分:1)

以下是您的解决方案:

&#13;
&#13;
var $scope;
var app = angular.module('miniapp', []);

function Ctrl($scope) {
	$scope.kites = [{
  	'green':{
    	'num':1
    }
  }]
  $scope.cnt = [];
  $scope.findit = function(c) {
    $scope.cnt.push(c);
    angular.forEach($scope.cnt, function(value, key) {
      $scope['c_' + value] = 'y';

    })
  }

};
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="miniapp" ng-controller="Ctrl">
  <div ng-repeat="l in kites">
    <a ng-click="findit(l.green.num)">color</a>
    <span ng-show="{{'c_'+l.green.num}} == 'y'">kites is </span>
  </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我不确定你可以在ng-if条件下使用括号。这不会在评估之前插值。

您可以执行的操作是在点击时为您的风筝添加“选定”值。 示例:

<强>控制器

$scope.findit = function(c){
    c.selected = true;   
}

查看

<div ng-repeat="l in kites">
    <a ng-click="findit(l.green)">color</a>
   <span ng-if="l.green.selected">kites is </span>
</div>