Javascript jsView中的引用数组元素
我有一个简单的测试应用程序,我想删除和添加标签,我有如下代码:Javascript jsView中的引用数组元素,javascript,jsviews,Javascript,Jsviews,我有一个简单的测试应用程序,我想删除和添加标签,我有如下代码: <script id="tags_template" type="text/x-jsrender"> <div class="tags"> Tags: <ul> {^{for tags}} <li>{{:name}}<a>×</a></li> {{/for}} <
<script id="tags_template" type="text/x-jsrender">
<div class="tags">
Tags:
<ul>
{^{for tags}}
<li>{{:name}}<a>×</a></li>
{{/for}}
<li><input /></li>
</ul>
</div>
</script>
现在我如何删除标签?有$。可观察(数组)。删除但如何在模板中引用该元素,以及如何在javascript中获取该元素?在文档中找到它:
$view.find('ul').on('click', 'a', function() {
var view = $.view(this);
$.observable(tags).remove(view.index);
});
是的,你自己的答案是正确的。但您可能对使用更为数据驱动和声明性的方法感兴趣,如下所示:
<div id="view"></div>
<script id="items_template" type="text/x-jsrender">
Items (Hit Enter to add):
<ul>
{^{for items}}
<li>
{{:name}}
<a class="remove" data-link="{on ~remove}">×</a>
</li>
{{/for}}
</ul>
<input data-link="{:newName trigger=true:} {on 'keydown' ~insert}"/>
</script>
搬迁的备选方案是:
remove: function(ev) {
var view = $.view(ev.target);
$.observable(items).remove(view.index);
}
或:
顺便说一句,{on…
事件绑定的新文档即将发布
var items_tmpl = $.templates("#items_template");
var items = [];
items_tmpl.link('#view', {items: items}, {
insert: function(ev) {
if (ev.which === 13) {
// 'this' is the data item
$.observable(items).insert({name: this.newName});
$.observable(this).setProperty('newName', '');
}
},
remove: function() {
// 'this' is the data item
$.observable(items).remove($.inArray(this, items));
}
});
remove: function(ev) {
var view = $.view(ev.target);
$.observable(items).remove(view.index);
}
remove: function(ev, eventArgs) {
var view = $.view(eventArgs.linkCtx.elem);
$.observable(items).remove(view.index);
}