gpt4 book ai didi

javascript - emberjs append 有效但引发断言失败错误

转载 作者:行者123 更新时间:2023-11-30 05:41:39 24 4
gpt4 key购买 nike

我是 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 中的每个 View 都有一个模板,例如:

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>

您正试图以这种方式在其他 View 中插入一个 View :

App.BarView.create().appendTo('#myFooView')

这是不允许的。您可以使用 {{view}} handlebars helper 在其他内部呈现 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);
}
})

我在你的代码中看到很多点击事件的 View ,ember 鼓励你使用 actions ,这提供了更大的灵 active 、错误/加载处理等。我认为使用它是个好主意。

希望对你有帮助

关于javascript - emberjs append 有效但引发断言失败错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com