在工作中,我刚刚开始使用JavaScript,MVVM和Kendo的JS框架,并且我有一个相当简单的问题。在Kendo视图模板中显示数组(从ViewModel)
我创建了一个允许超级英雄注册的View Model。
的JSBin我在工作:http://jsbin.com/gewu/3/edit?html,js,output
这里是HTML(视图):
<div id="view">
Superhero: <input data-bind="value: name" /><br/>
Superpower: <input data-bind="value:power"type="text">
<label for="">from Earth?<input type="checkbox" data-bind="checked:fromEarth"></label>
<button data-bind="click: registerHero" >Display User Info</button>
<div id="array-display"></div>
<p>Entries: <span data-bind="text: knownHeroes.length"></span></p>
</div>
而这里的JS(视图模型):
var viewModel = kendo.observable({
knownHeroes : [],
name: "Hulk",
power:"Stength",
fromEarth: true,
registerHero: function() {
var name = this.get("name");
var power = this.get("power");
var fromEarth = this.get("fromEarth");
this.knownHeroes.push({"name":name,"power":power,"fromEarth":fromEarth});
}
});
kendo.bind($("#view"), viewModel);
现在的我, m试图让视图循环并显示knownHeroes
的数组。但它不会呈现任何东西。我知道数据被推送到数组,因为我可以看到数组长度增加,并且我可以查找数组中的特定值。我假设问题与我在视图中引用数组的方式有关。但我不确定。下面是我写的模板:
HTML:
<script id="registry-view" type="text/x-kendo-template">
<ul>
# for (var i=0; i < knownHeroes.length; i++) { #
<li>
<ul>
<li>#= knownHeroes[i].name #</li>
<li>#= knownHeroes[i].power #</li>
<li>#= knownHeroes[i].fromEarth #</li>
</ul>
</li>
# } #
</ul>
</script>
<script type="text/javascript">
var template = kendo.template($("#registry-view").html());
$("#array-display").html(template); //Append the result
</script>
谢谢一吨...我会看看,当我开始工作,让你知道它是怎么回事。 –