将JSON内容加载到流星模板中

时间:2016-07-27 03:29:07

标签: javascript json templates meteor

我正在开发一个Meteor应用程序,该应用程序应该满足数据列表,其中一些数据存储在JSON文件中作为进程的一部分。但是,我没有成功将其数据导入模板。所以我想知道如何解决这个问题。

我已将JSON文件存储到panel / skills.json中,它基本上看起来像这样:

{"skills":[
{"value":".NET Compact Framework"},
{"value":".NET Framework"},
{"value":".NET para Web"}
]}

这就是HTML文件的样子:

<div class="required">
    <input type="text" class="form-control" list="tags">
    <datalist class="form-control" id="tags" name="tags">
    {{#each skills}}
        <option value={{value}}></option>
    {{/each}}
    </datalist>
</div>

有没有办法将JSON文件转换为.js存档,并使用帮助程序加载它?谢谢:)

2 个答案:

答案 0 :(得分:1)

我没试过,但这会奏效。

  1. 使用require
  2. 加载json文件
  3. 将值存储到reactiveVar
  4. 从帮助者返回
  5. 示例:

    var json = require('panel/skills.json');
    
    Template.myTemplate.onCreated(function() {
     this.skills = new ReactiveVar(json);
    });
    
    Template.myTemplate.helpers({
        skills: function (){
            return Template.instance().skills.get();
        }
    });
    

答案 1 :(得分:0)

使用可以在Meteor.methods中创建方法

meteor.methods({
    getSkills: function (){
        var Skills = JSON.parse(Assets.getText("parse/skills.json"));
        return Skills.skills;
    }
})

现在在模板中调用此方法

Template.skills.helpers({
    skills: function (){
        Meteor.call('getSkills', function(err, result){
           return result;
        }
    }
})

我还没有测试过,但我发现使用过这样的东西。