2015-09-20 31 views
0

我有多個選擇元素需要包含相同的值。而不是重複相同的HTML這種類型的每一個選擇:如何有效地將相同的選項值分配給Meteor中的多個Select元素?

<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="9">9</option> 
<option value="10">10</option> 

...我想要麼使用模板幫助提供這些值,比如像:

HTML:

<select class="jobLocCount" id="date1Shift1JobLoc2Count" name="date1Shift1JobLoc2Count"> 
    {{> jobLocCountVals}} 
</select> 

JS:

Template.tblScheduler.helpers({ 
    jobLocCountVals: function() { 
    return '<option value="1">1</option>'+ 
    '<option value="2">2</option>'+ 
    '<option value="3">3</option>'+ 
    '<option value="4">4</option>'+ 
    '<option value="5">5</option>'+ 
    '<option value="6">6</option>'+ 
    '<option value="7">7</option>'+ 
    '<option value="8">8</option>'+ 
    '<option value="9">9</option>'+ 
    '<option value="10">10</option>' 
    } 
}); 

...或者直接在HTML指定選項值至第一富硒這種類型的LECT,然後通過JS,類似的信息(僞)分配所有的休息:

Template.tblScheduler.onRender({ 
    $('#date1Shift1JobLoc2Count').Items = $('#date1Shift1JobLoc1Count').Items; 
    $('#date1Shift1JobLoc3Count').Items = $('#date1Shift1JobLoc1Count').Items; 
    . . . 
}); 

我的問題是,哪種方法更好,究竟會實現更好的辦法(以上只是頗爲牽強的僞碼)?

回答

1

如果你想這樣做,爲什麼不在模板助手中返回一個對象數組(有效的流星光標如何工作),並迭代它們?你可以對這些對象進行硬編碼,但是如果你喜歡,你也可以在JS中創建一個循環來爲你做。

這裏有一個硬編碼的例子,因爲它顯示你需要的選項值範圍從1-10:

JavaScript的模板助手

Template.yourTemplate.helpers({ 
    values: function() { 
    return [{value: 1}, {value: 2}, {value: 3}, {value: 4}, {value: 5}, {value: 6},  
     {value: 7}, {value: 8}, {value: 9}, {value: 10}]; 
    } 
    }); 

HTML模板

<template name="yourTemplate"> 
    <select id="whateverYouWant" class="whateverYouWant"> 
     {{#each values}} 
     <option value="{{value}}">{{value}}</option> 
     {{/each}} 
    </select> 
</template> 

我選擇走這條路,因爲它實質上就是Meteor在你迴歸時所做的n Mongo查詢的結果,硬編碼值除外,並使用Meteor的空格條語法。

作爲額外的獎勵,如果你想使這個全局模板幫手,可用於任何模板,你可以這樣做:

Template.registerHelper("selectValues", function() { 
     return [{value: 1}, {value: 2}, {value: 3}, {value: 4}, {value: 5}, {value: 6},  
      {value: 7}, {value: 8}, {value: 9}, {value: 10}]; 
}); 
相關問題