Angularjs ng类不使用ng repeat

Angularjs ng类不使用ng repeat,angularjs,Angularjs,我有一种情况,我必须根据条件添加类,而ng类正根据它工作,即使ng类中的条件是真的 <ul id="" class="clowd_wall" dnd-list="vm.cardData[columns.id].data" dnd-drop="vm.callback(item,{targetList: vm.cardData[columns.id].data, targetIndex: index, event: event,item:item,type:'fold

我有一种情况,我必须根据条件添加类,而ng类正根据它工作,即使ng类中的条件是真的

<ul id="" class="clowd_wall" dnd-list="vm.cardData[columns.id].data" 
            dnd-drop="vm.callback(item,{targetList: vm.cardData[columns.id].data, targetIndex: index, event: event,item:item,type:'folder',eventType:'sort','root':'folder',current_parent:'folder'})" ng-model="vm.cardData[columns.id].data">
               <div class="emptyCol" ng-if="vm.cardData[columns.id].data.length==0">Empty</div>
              <li class="dndPlaceholder"></li>
              <li class="cont____item" ng-repeat="card in vm.cardData[columns.id].data | orderBy:vm.sort" dnd-draggable="card"
         dnd-effect-allowed="move"
        dnd-allowed-types="card.allowType"
        dnd-moved="vm.cardData[columns.id].data.splice($index, 1)"
        dnd-selected="vm.tree.selected = card"  ng-class="{emptyCard:card.data.length==0,zoomin:vm.zoomin=='zoomin',emptyCard:!card.data}">
                 <div class="item" style="height:79%">
                    <ng-include ng-init = "root = columns.id" src="'app/partials/card.html'"></ng-include>
                 </div>
              </li>
           </ul>
    空的
  • vm.cardData[columns.id]中的卡片数据| orderBy:vm.sort“dnd draggable=“card” 允许dnd效果=“移动” dnd允许的类型=“card.allowType” dnd moved=“vm.cardData[columns.id].data.splice($index,1)” dnd selected=“vm.tree.selected=card”ng class=“{emptyCard:card.data.length==0,zoomin:vm.zoomin='zoomin',emptyCard:!card.data}”>

似乎您想使用
vm.cardData[columns.id].data.length
而不是
card.data.length

您的问题不清楚,因为不知道card.data将包含什么,并且每次迭代都会出现“.data”

如果是数组,则“card.data.length”将起作用,如果“card”中没有“data”键,则“.length”将出错,即如果card.data本身未定义,则它将没有“length”属性

尝试一个接一个地在ng类中添加条件,然后您将能够找出导致问题的条件。

做了一些小更改

ng-class="{emptyCard: card.data.length==0 || !card.data,zoomin: vm.zoomin=='zoomin'}"
如果您有多种表情,请尝试老式,如果它看起来最好:

控制器

$scope.getcardClass = function (objCard, strZoomin) {
    if (!card.data) {
        return 'emptyCard';
    } else if (strZoomin =='zoomin') {
        return 'zoomin';
    } else if (card.data.length == 0) {
        return 'emptyCard';
    }
};
ng-class="vm.getcardClass(card, vm.zoomin)"
HTML

$scope.getcardClass = function (objCard, strZoomin) {
    if (!card.data) {
        return 'emptyCard';
    } else if (strZoomin =='zoomin') {
        return 'zoomin';
    } else if (card.data.length == 0) {
        return 'emptyCard';
    }
};
ng-class="vm.getcardClass(card, vm.zoomin)"

注意:用控制器对象替换
vm

为什么
emptyCard
类有两个表达式?您可以将它们与
emptyCard:card.data.length==0 | |!card.data
仍然不起作用Hi Mohsin,你能共享这个json vm.cardData[columns.id].data吗?这样我就可以清楚地理解,你在代码中对ng-class犯了什么错误。没有一张卡有自己的数据密钥,其中包含一些values@Mohsinkhan您能否共享
vm
的示例内容?