我的应用程序上的一切都运行良好,但是当我在浏览器控制台中手动添加对象时,我在Get中获取了json模型数据,但它没有在网页上呈现。
我在列表视图中调用备注视图以呈现为UL。
这是我的html元素
<html>
<head>
<title> Backbone Demo </title>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
<script type="text/template" id="library-template">
<h1> My Notes List </h1>
<ul class="mynotes"></ul>
</script>
<script type="text/template" id="mynote-template">
<div class="mynote-title"> </div>
<div class="mynote-content"</div>
</script>
</head>
<body>
<div id="container">
</div>
</body>
</html>
这是Backbone View Script。
window.LibraryView = Backbone.View.extend({
tagName: 'section',
className: 'mynotes',
initialize: function() {
_.bindAll(this, 'render');
this.template = _.template($('#library-template').html());
this.collection.bind('reset', this.render);
},
render: function() {
var $mynotes,
collection = this.collection;
$(this.el).html(this.template({}));
$mynotes = this.$(".mynotes");
collection.each(function(mynote) {
var view = new LibraryMynoteview({
model: mynote,
collection: collection
});
$mynotes.append(view.render().edl);
});
return this;
}
});
答案 0 :(得分:1)
您也应该发布了LibraryMynoteview。我在代码中发现的一件事是你的“mynote-template”不包含任何模板标签。
<script type="text/template" id="mynote-template">
<div class="mynote-title"> </div>
<div class="mynote-content"</div>
</script>
这应该是这样的:
<script type="text/template" id="mynote-template">
<div class="mynote-title">{{title}}</div>
<div class="mynote-content">{{content}}</div>
</script>
可能是您当前正在渲染页面中的空div元素。我看到的另一件事是你在你的笔记上添加了一些“.edl”(应该是.el):
$mynotes.append(view.render().edl);
不确定这只是一个错字。最后但并非最不重要的是,您的代码需要DOM准备就绪。因此,请确保在以下内容中初始化您的观点:
$(function(){
// init here
});