所以我的目标是,我的数据库中包含菜单,菜单标题,路径以及以id字段为主键的级别。然后我有一个PHP类,在一个' nav'列表中的标记。这一切都没有任何问题。现在,级别设置为1到5,并且select SQL命令通过使用该级别进行排序来构建菜单。
为此考虑的目标是使表单保存所有这些数据,然后使用HTML5拖放并能够更改数据库中的级别集。
所以我目前要做的是让BackBone将这些数据加载到下划线模板中。这是我遇到一些问题的地方。
所以我的BackBone代码,
var AdminColModel = Backbone.Collection.extend({
url: '/GetMenu'
});
var AdminEditMenu = Backbone.View.extend({
el: '.page',
render: function() {
var that = this;
var MyMenu = new AdminColModel();
MyMenu.fetch({
success: function(MyMenu) {
var menutemp = _.template( $('#MenuTemplate').html(), {MyMenu: MyMenu.toJSON() } );
that.$el.html(that.menutemp );
return that;
}
});
}
});
$(document).ready(function(){
var MyMenu = new AdminEditMenu();
MyMenu.render();
});
路径 /GetMenu
返回,我在这里使用PHP Slim来执行此操作,菜单数据库信息采用JSON格式。
这是我的下划线代码,
<script type="text/template" id="MenuTemplate">
<% _.each(MyMenu, function(MyMenu) { %>
<%= $('.page').append(MyMenu.id) %>
<%= $('.page').append(MyMenu.title) %>
<%= $('.page').append(MyMenu.path) %>
<%= $('.page').append(MyMenu.level) %>
<%= $('.page').append('<br/><br/>') %>
<% }); %>
</script>
现在我的BackBone指向&#39; .page&#39;我在这个tempalte的代码上方的div标签中回显的类,这样,形成我所知道的,类在模板之前的DOM中,我认为是对的。
我也在使用Grunt来缩小我的所有主干/ JQuery代码,这些代码在关闭我的body标签之前加载。
现在这确实有效,但是从我观看的YouTube视频中,这个人只是在下划线模板中的一个表中编码,然后加载。如果我在模板中加载任何东西,并没有显示,JQuery。我发现我添加到我的JSON数据的唯一方法是我可以打印/回显我的页面中的数据。我不认为这是对的,我知道我一定做错了。
我没有发布我的任何PHP代码,因为我认为不需要它,这一切都有效,而且我的代码的那一面似乎没有任何问题。
欢迎所有帮助或评论。
格伦。
答案 0 :(得分:1)
将that.$el.html(that.menutemp );
更改为that.$el.html( menutemp );
。
由于menutemp
是一个局部变量,因此不需要that
。