Ember.js:将参数从父视图传递到嵌套子视图

时间:2013-02-18 14:09:55

标签: javascript ember.js

我正在尝试创建一个简单的嵌套视图。 “子”视图是Ember.Select。 “选择”参数需要来自父级,我无法让它工作。怎么做到这一点?

<script type="text/x-handlebars" data-template-name="application">
    {{view App.SelectView contentBindingForSelect="App.names"}}
</script>

<script type="text/x-handlebars" data-template-name="select-view">
    <h1>In SelectView</h1>
    {{view view.childSelectView contentBinding="view.contentBindingForSelect"}}
</script>


window.App = Ember.Application.create();

App.names = ["Yehuda", "Tom"];

App.ApplicationView = Ember.View.extend({
    templateName: 'application',
});

App.SelectView = Ember.View.extend({
    templateName: 'select-view',  
    childSelectView: Ember.Select
});

JSFiddle示例:http://jsfiddle.net/kRwcU/1/

2 个答案:

答案 0 :(得分:1)

我发现了这个问题......我错过了Ember中“惯例”的这一部分:“contentBindingForSelect”作为名称不起作用。需要在结尾处保留“绑定”一词,例如:“contentForSelectBinding”。我纠正了JSFiddle。现在工作正常。

http://jsfiddle.net/kRwcU/4/

<script type="text/x-handlebars" data-template-name="application">
    <h1>Hello from Ember.js</h1>
    {{view App.SelectView contentForSelectBinding="App.names"}}
</script>

<script type="text/x-handlebars" data-template-name="select-view">
    <h1>In SelectView</h1>
    {{view view.childSelectView contentBinding="view.contentForSelect"}}
</script>

答案 1 :(得分:0)

我刚刚开始在ember.js中使用但是如果你检查你当前为空的select元素,你会看到ember实际上在select标签中呈现了你的视图html。这显然是垃圾html所以无法正确呈现。

我怀疑正确答案是您不希望以这种方式扩展ember.select以实现功能需求。