2014-02-16 71 views
0

我有以下的(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.前綴,但沒有運氣。我如何呈現嵌套視圖?

EDIT

問題似乎是由容器執行的查找失敗。也許有一些資本化或名稱強制規則,我沒有得到正確的。我想列出所有可用的視圖,以便我可以識別我的視圖是否存在,也許有一個稍微不同的名稱。

如何列出所有可用(註冊?)視圖,包括嵌套視圖?這將包括dateRangeSelectorItemView,這是嵌套在App.DateRangeSelectorView內的視圖,並且未在應用程序本身中定義。

我猜我期待的是列出所有對象的方式,也都是Ember.View擴展(與他們查找的名字!):Ember.View.extend()

+0

請嘗試使用'{{#view App.DateRangeSelectorItemView item =「today」}}呈現視圖' –

回答

0

的問題是,我使用這個插座,以及outlet不允許指定視圖:它根據模板名稱生成視圖,以便我的DateRangeSelectorView未被使用。我已經提出了一個關於此的issue