我最近决定使用我的javascript库进行重大升级,并且在添加Ember.Views时遇到了一个令人困惑的问题。我现在已经研究了这个问题好几个小时了,并尝试了很多东西,但没有任何效果。
我想要做的很简单:扩展Ember.View,手动创建此扩展视图的新实例,然后将其附加到div。在更早的版本(ember.js 1.5)中,这非常简单。现在(ember.js 1.9)尝试相同的操作会导致错误。
查找视图模板时找不到容器。这是最多的 可能是由于手动实例化Ember.View。看到: http://git.io/EKPpnA
以下是一个非常简单的示例:http://jsfiddle.net/81dhm3ta/
HTML
<body>
<script data-template-name="main" type="text/x-handlebars">
Main
</script>
<div id="main" style="text-align: center;"></div>
</body>
的javascript
$(document).ready(function () {
App = Ember.Application.create();
App.MainView = Ember.View.extend({
templateName: 'main',
});
App.view = App.MainView.create();
App.view.appendTo("#main");
});
有人能告诉我最简单的方法吗?
答案 0 :(得分:2)
App.view
既不是D0M元素也不是jQuery对象,只需附加到div即可。它是View类型的Ember对象。
在错误提供的链接中,您清楚地告诉您无法创建您在代码段中创建的视图。动态视图必须在父视图中实例化或直接通过容器实例化(不推荐)。
如果只使用view
帮助器在模板中添加视图,您的生活会更容易:
<script type="text/x-handlebars" data-template-name="index">
{{view 'main'}}
</script>