Javascript Ember.js和jQuery可排序。如何处理变形脚本
我有一个ember.js应用程序,我想在上面使用jquery ui的可排序小部件。我的看法是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 有没有一种简单
<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冲突。看到这个更新的小提琴了吗