如何正确添加Ember.View

时间:2014-12-20 06:26:47

标签: ember.js

我最近决定使用我的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");
});

有人能告诉我最简单的方法吗?

1 个答案:

答案 0 :(得分:2)

App.view既不是D0M元素也不是jQuery对象,只需附加到div即可。它是View类型的Ember对象。

在错误提供的链接中,您清楚地告诉您无法创建您在代码段中创建的视图。动态视图必须在父视图中实例化或直接通过容器实例化(不推荐)。

如果只使用view帮助器在模板中添加视图,您的生活会更容易:

<script type="text/x-handlebars" data-template-name="index">
  {{view 'main'}}
</script>