Javascript 使用嵌套ng重复中的ng类

Javascript 使用嵌套ng重复中的ng类,javascript,angularjs,Javascript,Angularjs,我有一个嵌套的ng重复列表,当嵌套列表中的任何项目被修改时,我想向父类添加一个类 看起来是这样的: <div ng-repeat="pa in products" ng-class="{full: vari.basket>0}"> <div ng-repeat="vari in pa.variacions"> <input type="number" ng-model="vari.basket" name="basket" min="0"

我有一个嵌套的ng重复列表,当嵌套列表中的任何项目被修改时,我想向父类添加一个类

看起来是这样的:

<div ng-repeat="pa in products" ng-class="{full: vari.basket>0}">
    <div ng-repeat="vari in pa.variacions">
       <input type="number" ng-model="vari.basket" name="basket" min="0" max="20" step="1" ng-init="vari.basket=0">
    </div>
</div>

因此,基本上我想在任何变量项的篮子>0时添加
full


到目前为止还不起作用,我缺少什么?

您可以在控制器中添加一个函数,为您的父级设置类

<div ng-repeat="pa in products" ng-class="{full: isFull(pa.variacions)}">
    <div ng-repeat="vari in pa.variacions">
       <input type="number" ng-model="vari.basket" name="basket" min="0" max="20" step="1" ng-init="vari.basket=0">
    </div>
</div>

您可以在控制器中添加一个函数,为父级设置类

<div ng-repeat="pa in products" ng-class="{full: isFull(pa.variacions)}">
    <div ng-repeat="vari in pa.variacions">
       <input type="number" ng-model="vari.basket" name="basket" min="0" max="20" step="1" ng-init="vari.basket=0">
    </div>
</div>

您的
ng class
属性不在
vari
的范围内。您必须为外部
ngRepeat
提供一种机制,以确定是否有任何
pa.variacions
包含项。外部
ngRepeat
无法进入
$scope
或子
ngRepeat
。您的
ng class
属性超出了
vari
的范围。您必须为外部
ngRepeat
提供一种机制,以确定
pa.variacions
是否有项。外部
ngRepeat
无法进入
$scope
或子
ngRepeat
。McTranston18是一个更好的解决方案McTranston18是一个更好的解决方案返回
类型错误:无法读取某些项中未定义的
的属性“find”,因为某些项没有嵌套的ng repeat。。。有什么解决方法吗?当然,在运行
find
之前,我已更新以检查该项是否为数组。正在返回
TypeError:无法读取某些项中未定义的
的属性“find”,因为某些项没有嵌套的字符串重复。。。有什么解决方法吗?当然,在运行
find
之前,我更新了以检查该项是否为数组。
<div ng-repeat="pa in products" ng-class="{true: 'myFullClass'}[$ctrl.isProductBasketFull(pa)]">
    <div ng-repeat="vari in pa.variacions">
        <input type="number" ng-model="vari.basket" name="basket" min="0" max="20" step="1" ng-init="vari.basket=0">
    </div>
</div>
$scope.isProductBasketFull = function(pa){
    for(var i=0,cnt=pa.length;i<cnt;i++)
        if(pa[i].basket === maxVal) // whatever your max value is
            return true;
    return false;
};