我在我的应用中使用Google Analytics中的一些数据,该数据在散列键中使用冒号。例如,
var pages = [{
'ga:sessions': 100,
'ga:adImpressions': 1000
}, ...];
但是当我想用冒号来命令时,Angular遇到问题。这样:
<div ng-repeat="page in pages | orderBy:'ga:sessions':true">
抛出这个:
Error: [$parse:syntax] Syntax Error: Token ':' is an unexpected
token at column 3 of the expression [ga:sessions] starting at
[:sessions].
编辑:这是我已经尝试过的事情:
答案 0 :(得分:2)
使用一个函数,该函数将返回数组中每个对象的特定键的值:
$scope.filterFunc = function (obj){
return obj['ga:sessions'];
}
在HTML中:
<div ng-repeat="page in pages | orderBy:filterFunc:true">
另见this SO post。
答案 1 :(得分:0)
你不能这样使用它,因为角度解析器不允许你。
您可以在将它们转换为对象之前编写自己的过滤器或修复键。
UPD:从技术上讲,根据ECMAScript 5.1 https://es5.github.io/#x7.6
,它不是有效的属性名称答案 2 :(得分:0)
我很确定逃避角色应该有效,我找到了一个jsfiddle,他们在冒号前面使用转义字符()作为例子
http://jsfiddle.net/CBgcP/664/
<li ng-repeat="friend in friends | weDontLike:'Adam\:Adamson'">
编辑:我看到你已经尝试了这个但它似乎在jsfiddle中工作。我会看看我是否找不到另一种解决方案。