Javascript 角度重复改变值
我正在用ng repeat做一个有角度的桌子。所有这些都是工作,但在某些情况下,json会返回一些数据,比如PA-AC-DE,我想在表中的Pending、Active和deactivate中更改这些数据。我不知道该怎么做。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
努梅罗酒店
国际商会
埃斯塔多
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>