【问题标题】:How to use ng-class compare to self invoked value如何使用 ng-class 与自调用值进行比较
【发布时间】:2016-09-17 23:01:44
【问题描述】:

您好,如果条件 totalAsset 和 sortedAsset 相同,我一直在使用此标签更改我的 css 样式

<div class="table-row" ng-repeat="x in myData" 
ng-model="sort(x.totalAsset)" 
ng-class="{'lightblue': x.totalAsset == sortedAsset}">

totalAsset 是这样的我的数据

$scope.myData = [
{
totalAsset: "23557"
},
{
totalAsset: "4512190",   
},
{
totalAsset: "2190",   
},
{
totalAsset: "1256790",   
}
]

我创建了一个对总资产进行自我排序的函数

$scope.sort = function(totalAsset) {

$scope.unsortedAsset = totalAsset;
$scope.sortedAsset = $scope.unsortedAsset.split("").sort().join("");
console.log(sortedAsset);
}

在逻辑中只有第一行和最后一行会变成蓝色,其他两行保持不变。

但我这里的问题是只有最后一个变成蓝色,第一个没有。

【问题讨论】:

    标签: javascript css angularjs


    【解决方案1】:

    我不确定,如果你需要 {{ }}(至少在 ng2 中不需要它们)。

    <div class="table-row" ng-repeat="x in myData" 
    ng-model="sort(x.totalAsset)" 
    ng-class="x.totalAsset == sortedAsset ? 'lightblue' : ''">
    

    第二种方法是在控制器函数中执行 if

    $scope.areValuesEqual() {
    if($scope.x.totalAssets == $scope.sortedAssets) {
    return 'lightblue';
    }
    
    return; 
    }
    

    但这看起来很丑,但我只是把它扔在那里。

    【讨论】:

    • ng-class 不起作用的另一个原因是 x.totalAssets 和 sortedAssets 不相等。你应该先检查一下。
    • 那么对于第二个控制器功能,我该如何编写才能使事情这样工作?ng-class=areValuesEqual() ?
    • 就像你写的:ng-class="areValuesEqual()"
    • 我写了函数,但是函数不执行if case..$scope.sort = function(totalAsset) { $scope.unsortedAsset = totalAsset; console.log(totalAsset); $scope.sortedAsset = $scope.unsortedAsset.split("").sort().join(""); console.log($scope.sortedAsset); for(var i=0;i&lt;4;i++){ if(totalAssets == $scope.sortedAssets) { console.log("1"); return 'lightblue'; } console.log("0") return; }; }这是我在函数中写的
    • 这是不可读的,更新你的帖子并将代码添加到bost。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多