如果你有一个没有属性的项目数组,你如何访问for循环中的值? 我目前获得了正确数量的选项,但是我没有找到正确的语法来获取选项的值。
在http://jsfiddle.net/geewhizbang/Y44Gm/4/
有一个工作的jsfiddlevar data = {
items: [{
"title": "First Drop Down",
"hist": "Secondary",
"dec": "Priority",
"options": ["Priority", "Secondary"],
"type": "select"
}, {
"title": "Second Drop Down",
"hist": "Competitive Widget",
"dec": "Competitive Widget",
"options": ["Yadda", "Badda", "Bing", "Mobile", "Server", "Client", "Snickerdoodle"],
"type": "select"
}]
};
$.views.converters("dateFormat", function (val) {
if (val == null) return "";
var d = new Date(val);
if (d.getFullYear() == "1900") return "";
return d.getMonth() + "/" + d.getDate() + "/" + d.getFullYear();
});
$template = $.templates("#template");
$("#container").html($template.render(data));
这个的主体,包括模板:
<div id="container">
<script id="template" type="text/x-jsrender">
{{for items}}
<div class="bodyItem">
<div class="colDec">
<p>{{>title}}</p>
{{if type == "select"}}
<select data-link="{{>dec}}">
{^{for options}}
<option value="{{#}}">{#}</option>
{{/for}}
</select>
{{else}}
{{if type == "date"}}
<input value="{{dateFormat:dec}}" class="date" />
{{else}}
<div contentEditable="true">{{>dec}}</div>
{{/if}}
{{/if}}
</div>
<div class="colHist">
<p>{{>title}}</p>
{{if type == "date"}}
<input value="{{dateFormat:dec}}" class="date" />
{{else}}
<div>{{>dec}}</div>
{{/if}}
</div>
</div>
{{/for}}
</script>
答案 0 :(得分:0)
如果options是字符串数组,则需要:
<select data-link="dec">
{^{for options}}
<option value="{{:#data}}">{{:#data}}</option>
{{/for}}
</select>
还要注意select元素上的数据链接表达式。
通常,在你的jsfiddle中,你可以使用更多的数据链接。例如:
<div>{^{>dec}}</div>
(注意^)
要做数据链接,你需要
$template.link("#container", data);
而不是仅仅调用渲染...
需要进行更多更改,但这里是jsfiddle的更新,它会选择绑定:http://jsfiddle.net/BorisMoore/Y44Gm/5/