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



我有以下(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>

我遵循了这里指定的指导方针,特别是:

嵌套这样的视图类时,请确保使用小写字母,因为Ember会将带有大写字母的财产解释为全球财产。

谢谢,但不谢谢:余烬固执地说:

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

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

编辑

问题似乎是容器执行的查找失败了。也许有一些大写或名称强制规则我没有做对。我想列出所有可用的视图,这样我就可以识别我的视图是否在那里,也许名称略有不同。

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

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

问题是我为此使用了一个出口,而出口不允许指定视图:它根据模板名称生成视图,因此没有使用我的DateRangeSelectorView。我对此提出了一个问题。

最新更新