如何渲染嵌套视图(相对视图)

时间:2014-02-16 21:31:27

标签: ember.js

我有以下(ember-1.4.0):

App.DateRangeSelectorView = Ember.View.extend({
  templateName: 'date-range-selector',
  selectedBinding: 'controller.selected',
  dateRangeSelectorItemView: Ember.View.extend({
    tagName: 'li',
    classNameBindings: ['isActive:active'],
    isActive: function() {
      return this.get('item') === this.get('parentView.selected');
    }.property('item', 'parentView.selected')
  })
});

模板:

    <script type="text/x-handlebars" data-template-name="date-range-selector">
      <ul class="nav nav-pills" style="margin-bottom: 10px;">
        {{#view view.dateRangeSelectorItemView item="today"}}
          <a href="#" {{action gotoToday}} >{{controller.content.today.label}}</a>
        {{/view}}

    ....

      </ul>
    </script>

我已遵循指定的here指南,特别是:

  

在嵌套像这样的视图类时,请确保使用小写   在这封信中,Ember会用大写字母来解释一个属性   全球财产。

谢谢,但不,谢谢:余伯顽固地说:

Uncaught Error: Assertion Failed: Unable to find view at path 'view.dateRangeSelectorItemView' 

我尝试使用和不使用view.前缀,但没有运气。如何渲染嵌套视图?

修改

问题似乎是容器执行的查找失败。也许有一些大写或名称强制规则,我不是正确的。我想列出所有可用的视图,以便我可以识别我的视图是否存在,可能名称略有不同。

如何列出所有可用(已注册?)视图,包括嵌套视图?这将包括dateRangeSelectorItemView,这是嵌套在App.DateRangeSelectorView内的视图,并且未在应用程序本身中定义。

我想我要找的是一种列出所有对象(带有查找名称!)的方法,这些对象是Ember.View的扩展名:Ember.View.extend()

1 个答案:

答案 0 :(得分:0)

问题是我正在使用插座,并且插座不允许指定视图:它根据模板名称生成视图,因此未使用我的DateRangeSelectorView。关于此,我提出了issue