Javascript Ember.js和jQuery可排序。如何处理变形脚本

Javascript Ember.js和jQuery可排序。如何处理变形脚本,javascript,jquery,jquery-ui,ember.js,jquery-ui-sortable,Javascript,Jquery,Jquery Ui,Ember.js,Jquery Ui Sortable,我有一个ember.js应用程序,我想在上面使用jquery ui的可排序小部件。我的看法是 <ul id="sort-container"> {{#each content}} <li>{{title}}</li> {{/each}} </ul> {{{#每个内容} {{title}} {{/每个}} 排序工作正常,直到其中一个绑定需要更新。问题是每个都被余烬臭名昭著的变形标签包围着。查看此图像中生成的实际DOM 有没有一种简单

我有一个ember.js应用程序,我想在上面使用jquery ui的可排序小部件。我的看法是

<ul id="sort-container">
{{#each content}}
    <li>{{title}}</li>
{{/each}}
</ul>
    {{{#每个内容}
  • {{title}}
  • {{/每个}}
排序工作正常,直到其中一个绑定需要更新。问题是每个
  • 都被余烬臭名昭著的变形
    标签包围着。查看此图像中生成的实际DOM

    有没有一种简单的方法可以让这两个人配合得很好


    有没有办法强制视图重新绘制?在触发可排序的
    停用
    事件后,我可以轻松实现这一点。

    在我看来,使用Ember.CollectionView可以解决这个问题。所以我试了一下。这似乎有效:

    车把:

    
    {{view App.JQuerySortableView content=model}
    删除第二项
    {{view.content.title}
    
    javascript:

    App=Ember.Application.create();
    App.ApplicationController=Ember.ArrayController.extend({
    removietem:function(){
    本条第(1)款;
    }            
    });
    App.ApplicationRoute=Ember.Route.extend({
    模型:函数(){
    返回[
    {id:1,标题:'test1'},
    {id:2,标题:'test2'},
    {id:3,标题:'test3'}
    ];
    }
    });
    App.JQuerySortableItemView=Ember.View.extend({
    templateName:'jquery可排序项'
    });
    App.JQuerySortableView=Ember.CollectionView.extend({
    标记名:“ul”,
    itemViewClass:App.JQuerySortableItemView,
    didInsertElement:函数(){
    这个;
    此。$().sortable().disableSelection();
    }
    });
    

    可以通过对视图调用rerender()来重新绘制视图。但是请记住,变形是绑定的责任。因此,去除它们似乎是一种难闻的气味。你能提供一个例子来说明这个问题吗?@sly7_7这里有一把小提琴。要举例说明问题,首先只需运行它并单击链接以删除项目。然后重新运行,多次更改订单,然后单击链接以删除项目。它有时会删除2个或全部,因为变形不再与它们绑定的
  • 对齐,这是票据。。。在你给我的所有帮助下,我觉得我需要一个蝙蝠信号给你或者其他什么东西(也许这就是emberjs标签)。谢谢有趣的是,在
    http://cdn.shopify.com/
    考虑到他们有自己的竞争MVC js框架,名为。。。等等。。。蝙蝠侠。js这对我来说非常有效。非常感谢你的指导。为什么这样有效?CollectionView不使用变形?如果是这样,它是如何处理绑定的?@elsurudo使用集合视图只删除项目的封闭变形,这些变形与jquery ui冲突。看到这个更新的小提琴了吗