Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript emberjs append工作,但引发断言失败错误_Javascript_Ember.js - Fatal编程技术网

Javascript emberjs append工作,但引发断言失败错误

Javascript emberjs append工作,但引发断言失败错误,javascript,ember.js,Javascript,Ember.js,我是新来的余烬我试图附加一个模板到另一个模板,它似乎工作,但它提出了一个错误,你能解释为什么吗 错误: 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 =

我是新来的余烬我试图附加一个模板到另一个模板,它似乎工作,但它提出了一个错误,你能解释为什么吗

错误:

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');
  }
});
App.FooView = Ember.View.extend({
  templateName: 'foo'
})
这些是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>

{{{查看App.NewStickie}
新的
{{/view}
{{outlet}}
{{{#模型中的每个项目}
{{{#查看App.DeleteStickie}
{{/view}
{{item.content}
{{/每个}}
{{{#查看App.DeleteStickie}
{{/view}
{{view.content}

您可能应该阅读这篇文章,其中解释了
ContainerView
是。另外,我认为没有必要创建另一个
视图来将模板附加到另一个模板。

ember中的每个视图都有一个模板,例如:

foo_view.js

App.NewStickie = Ember.View.extend({
  click: function(evt){
    var stickie = Ember.View.create({
        templateName: 'stickie',
        content: 'write your notes here'
    });
    stickie.appendTo('#stickies');
  }
});
App.FooView = Ember.View.extend({
  templateName: 'foo'
})
foo模板

<script type="text/x-handlebars" data-template-name="index">   
  <div id=myFooView>Foo</div>
</script>
<script type="text/x-handlebars" data-template-name="index">   
  <div id=myFooView>
    Foo
    {{view App.BarView}}
  </div>
</script>
这是不允许的。可以使用{{view}}handlebars辅助对象在其他视图中渲染视图,如下所示:

foo模板

<script type="text/x-handlebars" data-template-name="index">   
  <div id=myFooView>Foo</div>
</script>
<script type="text/x-handlebars" data-template-name="index">   
  <div id=myFooView>
    Foo
    {{view App.BarView}}
  </div>
</script>
我在你的代码中看到了很多关于点击事件的视图,ember鼓励你使用,这给了你更多的灵活性,错误/加载处理等等。我认为使用它是个好主意


我希望当我将代码更改为container查看调用NewStickie的按钮时,它会有所帮助。没有错误,但我的视图出现了问题。知道这可能是什么吗?如果有必要,我可以从index.html发布代码。谢谢!index.html可能会有所帮助,请说明您使用view click事件而不是
{{action“someAction”}
的原因。余烬鼓励使用行动。谢谢,我已经做了一些修改,现在我会标记你的答案是正确的