当我有这么简单的Angular过滤器代码时:
{{ 'result: ' + array | printArray }}
带过滤器:
app.filter('printArray', [
function() {
return function(array) {
if (!angular.isArray(array)) {
return array;
}
var result = '';
if (array.length > 0) {
result = array[0];
for (var i = 1; i < array.length; i++) {
result += ', ' + array[i];
}
}
return result;
};
}
]);
我想自然result: one, two, three, four
,但结果是:
abc one,two,three,four
我知道它会通过这个明显的代码来解决:
{{ 'result: ' }}{{ array | printArray }}
但我想知道为什么Angular以奇怪的方式工作。
答案 0 :(得分:3)
在这个例子中我使用了Array.join()函数,
并将字符串移动到花括号外面:
result: {{ array | printArray }}
答案 1 :(得分:3)
结帐this
<body ng-controller="MainCtrl">
{{ 'result: ' + ( array | printArray ) }}
</body>