2016-03-15 33 views
2

這是我的模板片段。如何獲得流星模板中的_id值

{{#if is_multiple_choice _id}} 
    <div class="row" style="margin-bottom: 20px;"> 
    <div class="input-field col s11"> 
     <select id="ans_{{_id}}" name="answer" class="multiple_choice_answer"> 
     <option value="">No Answer Given for Multiple Choice</option> 
     {{#each allowed_values}} 
     {{#if matched value _id}} 
      <option value="{{value}}" selected>{{value}}</option> 
     {{else}} 
      <option value="{{value}}">{{value}}</option> 
     {{/if}} 
     {{/each}} 
     </select> 
     <label>{{text}}</label> 
    </div> 
    </div> 
{{/if}} 

所以我的目標在「匹配」的助手使用_id,但似乎在匹配值_id行_id將一無所獲。

如何獲得_id並將其用於「匹配」助手中?

請幫幫我!!!

+3

在#each循環中,您處於chil上下文中,因此要訪問父上下文,您需要'../_ id'或在模板幫助程序中您可以返回'Template.instance()。data._id' – MrE

+1

HI MrE ,您的答案很有價值,所以我想將您的答案標記爲可接受的,請發表回答,而不是評論。 –

回答

2

{{#each}} {{/each}}循環,你在孩子方面

要訪問情況下,你需要使用..符號,就像這樣:../_id

你也可以使用一個this內Template.helper得到this._id

Template.example.helper({ 
    "id": return this._id; 
}); 

然後,您可以在模板中使用id任何地方。

注:

1)this._id相當於Template.instance().data._id一個輔助內。

使用Template.instance().data訪問event,onCreatedonRendered內的模板數據上下文。

2)..表示法也可用於訪問grand-parent模板,例如../../_id

這個..模式可以從同一模板內的{{#each}}循環訪問父上下文,但不建議使用子模板(用於訪問父模板),因爲您的子模板不能在沒有父類的情況下重用模板上下文。