Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度重复改变值_Javascript_Angularjs - Fatal编程技术网

Javascript 角度重复改变值

Javascript 角度重复改变值,javascript,angularjs,Javascript,Angularjs,我正在用ng repeat做一个有角度的桌子。所有这些都是工作,但在某些情况下,json会返回一些数据,比如PA-AC-DE,我想在表中的Pending、Active和deactivate中更改这些数据。我不知道该怎么做。 努梅罗酒店 国际商会 埃斯塔多 Instalación 迪雷西翁 城市 科迪戈邮政 莫代洛酒店 VBP {{object.msisdn}} {{object.icc}} {{object.ActivationStatus}} {{object.sitename} {{ob

我正在用ng repeat做一个有角度的桌子。所有这些都是工作,但在某些情况下,json会返回一些数据,比如PA-AC-DE,我想在表中的Pending、Active和deactivate中更改这些数据。我不知道该怎么做。


努梅罗酒店
国际商会
埃斯塔多
Instalación
迪雷西翁
城市
科迪戈邮政
莫代洛酒店
VBP
{{object.msisdn}}
{{object.icc}}
{{object.ActivationStatus}}
{{object.sitename}
{{object.siteaddress}
{{object.sitecity}
{{object.sitezip}
{{object.phonedesc}}
{{object.compressingmode?'Yes':'No'}

根据API返回的值,您可以使用ng show显示文本,如下所示:

<td><span ng-show="object.ActivationStatus=='AC'">Active</span><span ng-show="object.ActivationStatus=='PA'">Other Label</span></td>
ActiveOther标签

依此类推。

使用自定义筛选方法,它将与下面的演示或此处的类似

但是,同样代码的getter函数也可以

angular.module('demoApp',[])
.controller('mainController',function(){
此参数。数据=[
{状态:'AC'},
{状态:'AC'},
{状态:'DE'},
{状态:'PA'},
];
})
.filter('filterStatus',函数(){
变量标签={
AC:'活动',
DE:‘非活跃’,
私人助理:“待定”
};
返回函数(输入){
返回标签[输入];
};
});

  • 状态:{row.status | filterStatus}
您可以使用过滤器

{{object.ActivationStatus | statusFilter}}
和statusFilter类似:

angular.module('module', []).filter('statusFilter', function() {
    return function(input) {
        //switch-case
   };});

基于带过滤器的AWolf应答,这里使用控制器中的函数:



  • 状态:{ctrl.getFullStatus(row.status)}

我认为您应该在模块中创建一个过滤器:

ngModule.filter('phoneNumberStatus', function() {
    statuses = {
        AC: 'Active'
        DE: 'Unactive'
    }
    return function(value) {
        return statuses[value] || "Unknown"
    }
})

然后在模板中使用它:

<td>{{ object.ActivationStatus | phoneNumberStatus }}</td>
{{object.ActivationStatus}电话号码status}


通过这种方式,您可以在任何模板中重用此筛选器,避免重复代码。

您可以创建一个javascript函数,返回所需的值:

$scope.getFullActivationText = function(input) {
if (input === 'PA') {
    return 'Pending';
}
else if (input === 'AC') {
    return 'Active';
}
else if (input === 'DE') {
    return 'Deactivate';
}
}

现在,您可以在HTML中保持所有内容不变,但替换为:

<td>{{object.ActivationStatus}}</td>
{{object.ActivationStatus}
进入

GetFullActivationContext(object.ActivationStatus)

您可以编写过滤器并将代码转换为标签。对于通用多语言支持,您还可以使用angular-translate。创建一个执行转换的
get
函数。您可以使用ng if并检查条件
<td>{{ object.ActivationStatus | phoneNumberStatus }}</td>
$scope.getFullActivationText = function(input) {
if (input === 'PA') {
    return 'Pending';
}
else if (input === 'AC') {
    return 'Active';
}
else if (input === 'DE') {
    return 'Deactivate';
}
<td>{{object.ActivationStatus}}</td>
<td>getFullActivationText(object.ActivationStatus)</td>