2016-07-27 2 views
2

프로세스의 일부로 JSON 파일에 저장된 일부 데이터가 포함 된 데이터리스트를 수행해야하는 Meteor 애플리케이션을 만들고 있습니다. 그러나 필자는 데이터를 템플릿으로 가져 오는 데 성공하지 못했습니다. 그래서 어떻게 해결할 수 있는지 궁금합니다.JSON 컨텐츠를 유성 템플릿에로드하십시오.

나는 패널/skills.json에 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 아카이브로 가져 오는 방법과 헬퍼를 사용하여로드하는 방법은 무엇입니까?

+0

는보고가있다. 그 작품이 나의 대답을 편집한다면 –

답변

1

시도해 보았지만 작동하지 않습니다. 도우미에서 reactiveVar

  • 반환에
  • 값을 저장을 필요로 사용

    1. 로드 JSON 파일

    예 : 내 ANS에 댓글을

    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(); 
        } 
    }); 
    
  • +0

    Template.instance(). skills.get() 및 ReactiveVar를 사용하여 필요한 JSON 파일을 얻을 수있었습니다. 그러나 그것을 반복하려고하면 "오류 : {{#each}}은 현재 배열, 커서 또는 잘못된 값만 허용합니다."라는 메시지가 나타납니다. –

    +0

    이 내가 HTML에 전화하려고하는 방법이다 : '{기술의 {#each 기술}} <옵션 값 = {{skill.value}}> {{/ 각}}' –

    +0

    @CaikeMotta {{각 기술 스킬}} {{# 각 skill.skills}} {{this.value}} {{/ 각}}'.. 그리고 더 나은 approch 사용'{{#with}} ' –

    0

    사용이

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

    당신 Meteor.methods의 방법을 만들 이제 템플릿

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

    나는 아직 테스트하지 않은이 메소드를 호출 할 수 있습니다 당신에게 :) 감사합니다,하지만 난 사용을 벌써 이런 것들.

    +1

    'Meteor.call()'의'return'은 도우미와 같은 범위에 있지 않습니다 ... –

    +0

    제 경우에는 유성에서 Sessão.set ('skills', result)을 사용했습니다. . 콜 리턴. 그래서 나는 Sessão.get ('기술')을 반환 할 수 있습니다. 잘 작동하십시오. 다른 변수를 사용하여 결과를 저장할 수 있습니다. –