【问题标题】:How to render a nested view (relative view)如何渲染嵌套视图(相对视图)
【发布时间】:2014-02-16 21:31:26
【问题描述】:

我有以下 (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 会将带有大写字母的属性解释为 全局属性。

谢谢,但不用谢:ember 固执地说:

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

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

编辑

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

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

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

【问题讨论】:

  • 请尝试使用{{#view App.DateRangeSelectorItemView item="today"}}渲染视图

标签: ember.js


【解决方案1】:

问题是我为此使用了一个插座,并且插座不允许指定视图:它根据模板名称生成视图,因此我的DateRangeSelectorView没有使用。我已经为此提出了issue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2013-06-20
    相关资源
    最近更新 更多