在流星中使用JSON的奇怪行为

时间:2015-04-09 18:01:04

标签: json meteor

在我的meteor应用程序中,我有一个包含此语言列表的JSON文件:List of Language Codes in YAML or JSON?

Template.myProfile.helpers({
  isoLang: function(){
    return JSON.parse(Assets.getText("myfile.json"));
  }
});

<select>
{{#each isoLang}}
  whaterver i put here
{{/each}}
</select>

问题在于,无论我在帮助器中返回什么内容,只要我保存文件,我的应用程序模板就会更改为登录模板(即使用铁外部),并且它不明白它是如何实现的。< / p>

我试图将我的langauages列表作为js对象,但是从公共文件夹或myProfile子文件夹(在客户端文件夹中),它给我带来了同样的问题,无论我尝试什么,我都不会输入我的{{ #each}}条件。

我在使用这个json / js对象时做得怎么样?

谢谢你,大卫

1 个答案:

答案 0 :(得分:0)

List of Language Codes既不是JSON数组(缺少方括号),也不是(Mongo)游标。空格键的#each是指

  

迭代数组或数据库游标(参见Meteor docs):

所以你需要将JSON对象转换为JSON数组。这是一个基本草图:

var JsonObj= {"a":"1","b":"2","c":"3","d":"4"};
var array = []; 
var k = 0
for(var i in JsonObj) {
    if(JsonObj.hasOwnProperty(i)) {
         array[k++] = JsonObj[i]; 
         console.log(">> " + JsonObj[i])
    }
 }
 console.log(array);