JS代码:
$scope.records={"0.19", "C:0.13", "C:0.196|D:0.23"}
.filter('filterOutput', function () {
return function (input) {
if (input.indexOf(":") != -1) {
var out = input
.split('|')
.map(function (v) {
var s = v.split(':')
return s[0] + ':' + (Number(s[1]) * 100) + "%"
})
.join()
return out;
} else {
return input * 100 + "%";
}
}
})
HTML code:
<h1 ng-repeat="x in records|filterOutput">{{x}}</h1>
我想要输出:
&#34; 19%&#34;
&#34; C:13%&#34;
&#34; C:19.6%| d:23%&# 34;
但是console.log
:
TypeError:input.indexOf不是函数
我该怎么办? 如何在AngularJS中拆分数据?
答案 0 :(得分:2)
我修改了你的代码以获得所需的输出。
Html代码
<h1 ng-repeat="x in records track by $index">{{x|filterOutput}}</h1>
变量值
$scope.records=["0.19","C:0.13","C:0.196|D:0.23"];
AngularJS过滤器
.filter('filterOutput', function () {
return function (input) {
if (input.indexOf(":") != -1) {
var out = input
.split('|')
.map(function (v) {
var s = v.split(':')
return s[0] + ':' + (Number(s[1]) * 100) + "%"
})
.join('|')
return out;
} else {
return input * 100 + "%";
}
}
})
答案 1 :(得分:0)
我已修改您的代码以获得所述的预期结果,请检查以下代码。 为了更好地理解here
,我创造了一个小提琴<强>控制器:强>
.controller('FilterController', function ($scope) {
$scope.records = ["0.19","C:0.13","C:0.196|D:0.23"];
});
过滤:
.filter('filterOutput', function () {
return function (inputArray) {
return inputArray.map(function (input){
if (input.indexOf(":") != -1) {
var out = input
.split('|')
.map(function (v) {
var s = v.split(':')
return s[0] + ':' + (Number(s[1]) * 100) + "%"
})
.join('|')
return out;
} else {
return input * 100 + "%";
}
});
}
});