我有两个json文件。我这样得到他们:
var fr, en;
$.getJSON('fr.json', function(data) {
fr = data;
}).complete(function() {
...
});
$.getJSON('en.json', function(data) {
en = data;
}).complete(function() {
...
});
此文件是区域设置文件。我想测试它们。我想通过属性名比较对象fr和en,因此当locale文件中缺少某些内容时,单元测试将显示。
要获取EN语言环境中缺少的属性,我将使用此算法:
$parse(*path*)(fr);
,如果它返回了某些内容 - > EN语言环境
具有与FR locale相同的属性。所以我的问题。我在文件fr中有这样的字符串。 "一些":{"数字":["一个","两个","三个"] ...... } 第一步,我有这样的属性路径:
some.numbers.0
some.numbers.1
some.numbers.2
当我尝试在EN语言环境中解析这些路径时,我收到了这个错误:
Error: [$parse:syntax] Syntax Error: Token '.0' is an unexpected token at column 15 of the expression [addForm.messages.numbers.0] starting at [.0].
http://errors.angularjs.org/1.4.3/$parse/syntax?p0=.0&p1=is%20an%20unexpected%20token&p2=25&p3=some.numbers.0&p4=.0
如何在包含数组的对象上进行$解析?或者还有其他方法可以做我需要的吗?
答案 0 :(得分:0)
正如@charlietfl在他对这个问题的评论中提到的那样:
对象没有这些属性,数字是一个数组。需要使用 正确的javascript对象/数组表示法
所以,我需要使用
some.numbers[0]
some.numbers[1]
etc
而不是
some.numbers.0