【问题标题】:Dynamic property inside ng-if statementng-if 语句中的动态属性
【发布时间】:2015-02-16 01:57:38
【问题描述】:

<ul>
<li 
ng-repeat="category in categoryList">
{{category.Name}} <br>
<ul>
<li 
ng-repeat="game in gameList" ng-if="game.{{category.Name}}">
{{game.Name}}
</li>
</ul>
</li>
</ul>

我想检查某个游戏是否有一个具有类别名称的子项,使用方括号它只会查找一个名为类别的特定子项,该子项不存在。

【问题讨论】:

  • 尝试改成ng-if="game[{{category.Name}}]"
  • 我觉得更好ng-if="game[category.Name]"
  • @user4370437 那么哪个评论有效? :-)
  • 我认为是你的,或两者兼而有之:D
  • @Rasalom small fiddle :-D

标签: javascript angularjs dom angularfire


【解决方案1】:

ng-if 指令中,您可以直接引用变量category

ng-if="game[category.Name]"

angular.module('app',[])
.controller('ctrl',function($scope){
    $scope.categoryList = [
        {Name : '1'},
        {Name : '2'},
        {Name : '3'},
        {Name : '4'},
        {Name : '5'}
    ];
    
    $scope.gameList = [
        {Name : 'g1', '1':true},
         {Name : 'g2', '1':true},
         {Name : 'g3', '2':true},
         {Name : 'g4', '7':true}
    ]
    
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app" ng-controller="ctrl">
  <ul>
    <li ng-repeat="category in categoryList">
      Category - {{category.Name}} <br>
      <ul>
        <li ng-repeat="game in gameList" ng-if="game[category.Name]">
          Game - {{game.Name}}
        </li>
      </ul>
    </li>
  </ul>
</div>

【讨论】:

    【解决方案2】:

    您可能必须通过控制器中的函数来执行此操作。 $scope.nameExists = function (game, name){return typeof game[name] !== 'undefined'; }; 然后ng-if="nameExists (game, category.Name)"

    【讨论】:

      猜你喜欢
      • 2014-03-14
      • 2010-12-09
      • 2015-07-05
      • 1970-01-01
      • 2011-01-03
      • 2015-03-13
      • 2013-04-30
      • 1970-01-01
      相关资源
      最近更新 更多