我的主干代码(见下文)正在运行,没有任何问题,它获取数据并使用下划线模板显示/呈现数据。我还在骨干代码中添加了一个触发事件,以便JQuery将模板数据排序为可排序列表。
但是我尝试使用更新回调来更新我的可排序列表,这是为了获取列表的更新顺序,将其转换为JSON数据,然后使用Backbone.save();将数据保存到我的数据库。
我的骨干数据::
var AdminColModel = Backbone.Collection.extend({
url: '/Admin/GetMenuData'
});
var AdminEditMenu = Backbone.View.extend({
el: $(".page"),
render: function() {
var that = this;
var MyMenu = new AdminColModel();
MyMenu.fetch({
success: function(MyMenu) {
var menutemp = _.template( $('script.MenuTemplate').html(), {MyMenu: MyMenu.toJSON() } );
that.$el.html(menutemp);
that.trigger('MenuSortableList', that); <- fires my sort list!
}
});
} //End of render function
});
$(document).ready(function(){
var MyMenu = new AdminEditMenu();
MyMenu.on('MenuSortableList', function(event) {
$( "#AdminChangeMenuOrder" ).sortable({
axis: 'y',
placeholder: 'AdminMenuChangeableList',
helper: "clone",
forcePlaceholderSize: true,
forceHelperSize: true,
cursor: "move",
update: function() {
var sortableLinks = $(".AdminMenuChangeableList");
$(sortableLinks).sortable();
var linkOrderData = $(sortableLinks).sortable('serialize');
console.log(linkOrderData);
linkOrderData.save();
}
});
});
MyMenu.render();
});
现在这一切都有效,除了“更新”中的代码。可分类调用中的段调用。
这是我的下划线模板,
<script class="MenuTemplate" type="text/template">
<section id="AdminChangeMenuOrder">
<% _.each(MyMenu, function(MyMenu) { %>
<div id="<%= MyMenu.id %>" class="AdminMenuChangeableList"><%= MyMenu.title %> @ <%= MyMenu.path %> Current Level : <%= MyMenu.level %></div>
<% }); %>
</section>
</script>
现在模板有效,但我一直在进行一些研究,看起来很多人,使用 li
列表,就是我应该用我的模板做的,就是很容易转换成JSON对象
欢迎大家帮忙,
由于
格伦
答案 0 :(得分:0)
好的,我现在一切正常。首先,我必须将JQuery可排序列表转换为JSON格式,然后将其设置为主干模型并保存该模型,我不确定这是否是正确的方法,但它确实有效。
我的可排序列表的“更新”部分在哪里,我已更改,
update: function() {
var i = 1;
var Data = $(this).sortable('toArray');
_.each(Data, function(Data) {
var UpdatedMenuList = new Backbone.Model({ id: Data, level: i++ });
UpdatedMenuList.url = '/Admin/UpdateMenuData';
UpdatedMenuList.save();
});
}
如果有人认为这是错误的,请告诉我以及如何更好地更改我的代码。
由于
格伦。