Javascript 余烬选择集内容绑定
我在大视图中使用嵌套视图/模板对Ember进行了相当复杂的设置。我的父视图有一个控制器,上面有一个数组,我想在内部视图/模板中将其用作Select的contentBinding 我已经让handlebars助手在我的内部模板中工作,但我还想以编程方式扩展Select以添加一些验证样式支持。当我扩展余烬时。但是选择并设置它不需要的contentBinding 我的模板中的示例:Javascript 余烬选择集内容绑定,javascript,ember.js,handlebars.js,Javascript,Ember.js,Handlebars.js,我在大视图中使用嵌套视图/模板对Ember进行了相当复杂的设置。我的父视图有一个控制器,上面有一个数组,我想在内部视图/模板中将其用作Select的contentBinding 我已经让handlebars助手在我的内部模板中工作,但我还想以编程方式扩展Select以添加一些验证样式支持。当我扩展余烬时。但是选择并设置它不需要的contentBinding 我的模板中的示例: {{view Ember.Select prompt="Choose" classNam
{{view Ember.Select
prompt="Choose"
classNames="span12"
contentBinding="view.parentView.controller.countrylist"
optionLabelPath="content.name"
optionValuePath="content.id"
selectionBinding="view.parentView.controller.selectedObject"
valueBinding="view.parentView.controller.model.state"}}
作为使用{{View View.selectBox}}显示的视图,我将selectBox设置为SelectBoxView
SelectBoxView = Ember.Select.extend({
prompt: "Please Choose",
contentBinding: 'parentView.controller.countrylist',
selectionBinding: 'parentView.controller.selectedObject',
optionLabelPath: 'content.name',
optionValuePath: 'content.id',
classNames: ["span12"]
两个选择都会显示,但只有纯车把有数据显示。我已经尝试了我能想到的每一种组合,以在我的外部视图的控制器中访问countrylist
编辑:
好吧,我整个上午都在搞砸这件事。我遇到的问题是从“家长”控制器获取国家/地区。我没有一个用于我所在的视图,我想我可以四处制作一个。你不想这样硬编码绑定,这是一个糟糕的做法。特别是因为他们正在走出他们的范围寻找价值。将国家/地区列表数组向下传递到视图中,并在创建选择器实例时将其附着
App.AppleView=Em.View.extend({
模板名称:“苹果”
});
App.SelectBoxView=Ember.Select.extend({
提示:“请选择”,
optionLabelPath:“内容”,
optionValuePath:'内容',
类名:[“span12”]
});
{{view App.AppleView countryList=model}
苹果
{{view App.SelectBoxView contentBinding=view.countryList}
这是有道理的,但我没有AppleView“级别”的模型。换句话说,没有定义的控制器。我有上层的路线、控制器和视图。路线提供了我正在填写的模型,控制器有我想要使用的国家列表。内部视图有一个模板,我在其中使用{{View}}辅助对象呈现Select。在这个例子中,我仍然需要使用countryList=parentView.model或类似的东西来访问它,或者我认为这是错误的吗?你介意更新我的例子并给我看一个例子吗?
App.AppleView = Em.View.extend({
templateName: 'apple'
});
App.SelectBoxView = Ember.Select.extend({
prompt: "Please Choose",
optionLabelPath: 'content',
optionValuePath: 'content',
classNames: ["span12"]
});
<script type="text/x-handlebars" data-template-name="index">
{{view App.AppleView countryList=model}}
</script>
<script type="text/x-handlebars" data-template-name="apple">
Apples
{{view App.SelectBoxView contentBinding=view.countryList}}
</script>