【问题标题】:JsViews #index not updated when view model changes视图模型更改时 JsViews #index 未更新
【发布时间】:2013-07-17 01:44:11
【问题描述】:

我必须以某种方式强制刷新吗?我有一个网格,当我调用“删除”时会更新,但索引没有重新编号。

以前有人遇到过这种情况吗?

**Remove function:**
$("#result")
   .on("click", ".change", function(){
     var dataItem = $.view(this).data;
         $.observable(dataItem).setProperty("name", dataItem.name + "*");
    })
  .on("click", ".remove", function(){
     var index = $.view(this).index;
         $.observable(people).remove(index);
   });

http://jsfiddle.net/mawaru/mfMBA/

更新:我想我明白了。

我添加了这一行。

      $.observable(people).refresh(people);

对吗?

【问题讨论】:

    标签: jsrender jsviews


    【解决方案1】:

    呈现#index 的标签不是数据绑定的。你需要写:

    <span>{^{:#index + 1}}</span>

    <span data-link="#index + 1"></span>

    调用$.observable(people).refresh(people); 会起作用,因为它会重新渲染所有项目,而不是增量插入或删除。但是我上面建议的方法更好,因为它们允许插入和删除是增量的。

    【讨论】:

    • 我有什么办法可以在删除时将更新后的索引发送到另一个 javascript 函数。当我尝试 onclick="removeTags({{:#index}})" 时,每次删除后索引都没有更新。
    • 是的 - 但最好不要使用 DOM Level 0 事件绑定:onclick=... 我鼓励您使用 data-link="{on removeTags}"。您可以传递参数 - data-link="{on removeTags #index}" - 但是如果您想要的只是索引,则不需要传递它,如果您使用 eventArgs.view.index,也可以看看在 "jsviews.com/#computed"、"jsviews.com/#link-events" 和 "jsviews.com/#samples/computed/shopping-cart@tmpl" - 以及函数:函数 removeItem(ev, eventArgs)。如果有参数,它将是 function removeItem(indexParam, ev, eventArgs) 。{
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    相关资源
    最近更新 更多