簡體   English   中英

在帶有數組的對象上使用它時,為什么會出現$ parse錯誤?

[英]Why I am getting $parse error when use it on object with array?

我有兩個json文件。 我正在這樣得到他們:

var fr, en;
$.getJSON('fr.json', function(data) {
    fr = data;
}).complete(function() {
    ...
});

$.getJSON('en.json', function(data) {
    en = data;
}).complete(function() {
    ...
});

該文件是語言環境文件。 我想測試一下。 我想通過屬性名稱比較對象fr和en,以便在語言環境文件中缺少某些內容時顯示單元測試。

為了獲得EN語言環境中缺少的屬性,我正在使用以下算法:

  1. 在FR語言環境中獲取所有對象路徑,例如abc,abe,adx等
  2. 然后我使用$parse(*path*)(fr); 並返回-> EN語言環境與FR語言環境相同的屬性。

所以我的問題。 我在文件fr中有這樣的字符串。 “ some”:{“數字”:[“一個”,“兩個”,“三個”] ...}在第一步中,我得到了這樣的屬性路徑:

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

如何在包含數組的對象上使用$ parse? 還是有其他方法可以滿足我的需求?

正如@charlietfl在對問題的評論中提到的那樣:

對象沒有那些屬性,數字是一個數組。 需要使用正確的javascript對象/數組表示法

所以,我需要使用

some.numbers[0]
some.numbers[1]
etc 

代替

some.numbers.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM