[英]For-Each Loop in TextArea
當我嘗試在純HTML textarea中使用Handlebars ForEach循環時,我遇到了一些意想不到的行為。
首先讓我告訴你我的代碼:
我的template.html:
<template name="test">
<textarea>
{{#each array}}
{{this}}
{{/each}}
</textarea>
</template>
我的template.js:
Template.test.array = function(){
return ["String1", "String2", "String3"];
}
問題:
我實際上期望一些看起來像這樣的輸出:
String1
String2
String3
相反,我得到了這個:
<!--data:46XrgsL9aX8aCa3Ek-->
<!--data:tu6FiCxRraSLoh2w9-->
<!--data:5h3PkyB66dHw4zrWF-->
作為一種解決方法,我使用了Handlebars助手並使用jQuery操縱textarea的值,這非常有效。
我還想對這個案子做一些澄清:
每一個小幫助都表示贊賞!
這些字符串看起來像Spark地標 。 這很奇怪,但可能會在下一個Meteor版本中重寫渲染引擎時修復。
這可能與字符串文字作為上下文傳遞給幫助者時的問題有關; 它變成了一個對象。
回到字符串文字的一種方法是編寫一個幫助器。 而不是{{this}}
,寫{{printString}}
,並定義
Template.test.printString = function() { return "" + this; }
嗯,這應該工作! 如果在安德魯的建議之后仍然沒有,請嘗試以下方法:
1)將數據移出幫助程序:
var array = ["String1", "String2", "String3"];
Template.test.array = function(){
return array;
};
2)將數據條目包裝在對象中,作為解決方法:
Template.test.array = function(){
return [{label: "String1"}, {label: "String2"}, {label: "String3"}];
};
{{#each array}}
{{label}}
{{/each}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.