marionette 如何将渲染视图附加到 DOM
How does marionette attach rendered views to the DOM
我有一个非常简单的设置 Marionette 我正在尝试开始工作。
我有一个集合视图:
var MyItemsView = Marionette.View.extend({
template: "#some-template"
});
var view = new MyItemsView({
collection: new Backbone.Collection([1,2,3,4,5])
});
模板直接嵌入我的HTML
<script id="some-template" type="text/html">
<ul>
<% _.each(items, function(item){ %>
<li> <%= item %> </li>
<% }); %>
</ul>
</script>
我没有输出。
当我尝试使用 view.render()
时,我也没有得到任何输出。
当我登录 console.log(view.render().el)
时,我得到一个空的 <div>
我不明白这是怎么发生的?视图不应该使用提供的模板吗?
另一个更新。这将使用 ItemView 或 LayoutView 而不是 View 呈现...这里正在进行 wtf。
此示例直接取自 Marionette 网站。是不是我做错了什么?
从外观上看,它创建了一个内存中的视图。
您需要使用 el
选项告诉它您希望将此视图内容附加到何处,
否则你应该像
一样手动附加到DOM
$('body').append(view.el)
您使用的 Marionette 是什么版本?如果您使用的是 3.0.0 之前的任何版本(目前是 beta),您应该从 ItemView
而不是 View
从 Marionette 文档 (v2.4.5):
Note: The Marionette.View class is not intended to be used directly.
It exists as a base view for other view classes to be extended from,
and to provide a common location for behaviors that are shared across
all views.
此行为在 v3.0.0 中发生了变化,ItemView
看起来好像已被删除。
我有一个非常简单的设置 Marionette 我正在尝试开始工作。
我有一个集合视图:
var MyItemsView = Marionette.View.extend({
template: "#some-template"
});
var view = new MyItemsView({
collection: new Backbone.Collection([1,2,3,4,5])
});
模板直接嵌入我的HTML
<script id="some-template" type="text/html">
<ul>
<% _.each(items, function(item){ %>
<li> <%= item %> </li>
<% }); %>
</ul>
</script>
我没有输出。
当我尝试使用 view.render()
时,我也没有得到任何输出。
当我登录 console.log(view.render().el)
时,我得到一个空的 <div>
我不明白这是怎么发生的?视图不应该使用提供的模板吗?
另一个更新。这将使用 ItemView 或 LayoutView 而不是 View 呈现...这里正在进行 wtf。
此示例直接取自 Marionette 网站。是不是我做错了什么?
从外观上看,它创建了一个内存中的视图。
您需要使用 el
选项告诉它您希望将此视图内容附加到何处,
否则你应该像
一样手动附加到DOM$('body').append(view.el)
您使用的 Marionette 是什么版本?如果您使用的是 3.0.0 之前的任何版本(目前是 beta),您应该从 ItemView
而不是 View
从 Marionette 文档 (v2.4.5):
Note: The Marionette.View class is not intended to be used directly. It exists as a base view for other view classes to be extended from, and to provide a common location for behaviors that are shared across all views.
此行为在 v3.0.0 中发生了变化,ItemView
看起来好像已被删除。