emberjs追加有效,但引发断言失败错误
emberjs append works but raises Assertion Failed error
我是ember的新手,我正试图将一个模板附加到另一个模板上,它似乎可以工作,但它引发了一个错误,你能解释一下为什么吗?
错误:
Assertion failed: You cannot append to an existing Ember.View. Consider using Ember.ContainerView instead
这是app.js中的代码
App.NewStickie = Ember.View.extend({
click: function(evt){
var stickie = Ember.View.create({
templateName: 'stickie',
content: 'write your notes here'
});
stickie.appendTo('#stickies');
}
});
这些是index.html的内容
<script type="text/x-handlebars">
{{#view App.NewStickie}}
<button type="button" class="btn btn-success">
New
</button>
{{/view}}
{{outlet}}
</script>
<script type="text/x-handlebars" id="index">
<div id="stickies">
{{#each item in model}}
<div class="stickie" contenteditable="true">
{{#view App.DeleteStickie}}
<span class="glyphicon glyphicon-trash"></span>
{{/view}}
<div contenteditable="true">
{{item.content}}
</div>
</div>
{{/each}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="stickie">
<div class="stickie">
{{#view App.DeleteStickie}}
<span class="glyphicon glyphicon-trash"></span>
{{/view}}
<div contenteditable="true">
{{view.content}}
</div>
</div>
</script>
ember中的每个视图都有一个模板,例如:
foo_view.js
App.FooView = Ember.View.extend({
templateName: 'foo'
})
foo模板
<script type="text/x-handlebars" data-template-name="index">
<div id=myFooView>Foo</div>
</script>
您正试图以这种方式在其他视图中插入一个视图:
App.BarView.create().appendTo('#myFooView')
这是不允许的。您可以使用{{view}}手柄助手来渲染其他类似的视图:
foo模板
<script type="text/x-handlebars" data-template-name="index">
<div id=myFooView>
Foo
{{view App.BarView}}
</div>
</script>
但我认为,你希望这是动态的工作。因此,您可以使用ContainerView,如错误消息所述:
App.StickiesView = Ember.ContainerView.extend({
click: function() {
var stickie = Ember.View.create({
templateName: 'stickie',
content: 'write your notes here'
});
this.pushObject(stickie);
}
})
我在你的代码中看到了很多关于点击事件的视图,ember鼓励你使用操作,这给了你更多的灵活性,错误/加载处理等。我认为使用它是个好主意。
我希望它能帮助
您可能应该阅读本指南,其中解释了ContainerView
是。此外,我认为没有必要创建另一个View
来将模板附加到另一个模板。
相关文章:
- 断言错误:断言失败:坐标数组的长度应与步幅匹配
- 未捕获的错误:断言失败:余烬视图需要 1.7 和 2.1 之间的 jQuery
- emberjs追加有效,但引发断言失败错误
- i18n转换无法使用ember-断言失败:缺少键的转换
- ember dev fixes错误:“;断言失败:findAll的响应必须是数组,而不是未定义的“”;
- OL3 缩放到范围控件引发“未捕获的断言错误:断言失败:无效的范围或几何”
- Ember 断言失败:来自 findQuery 的响应必须是数组,而不是未定义
- 未捕获的错误:断言失败:必须使用 Ember.set() 进行设置
- (Ember.js) 断言失败:您指定了 <(ClassName.Button 的子类)的模板名称图标:ember353
- 如何在断言失败时继续测试用例 在 CasperJS 中
- 余烬数据断言失败:无法对未定义的对象使用“查询”调用 get
- 垃圾回收时断言失败
- 断言失败:#each 循环的值必须是数组余烬 js
- 未捕获错误:断言失败:尝试注册具有已在使用的 ID 的视图:名称
- 得到"未捕获错误:断言失败:Ember视图需要1.7和2.1之间的jQuery“;通过ember-cli创建的
- 呈现多个EmberJS视图时断言失败
- YUI.只有一个断言失败后,测试才会停止
- 处理路由时出现Ember错误:列出断言失败
- 为什么Ember会抛出“;未捕获错误:断言失败:调用已销毁对象上的集“”;载于ember.js:3722
- 断言失败-[UIAlertController addTextFieldWithConfigurationHandler