当您使用视图助手从把手创建视图实例时,所有(好的,大多数)名称=值对都将传递给视图的 create 方法。所以:
{{view Ember.Select viewName="select" contentBinding="App.peopleController" optionLabelPath="model.fullName" optionValuePath="model.id" prompt="Pick a person:" selectionBinding="App.selectedPersonController.person"}}
变成
view = Ember.Select.create({
contentBinding="App.peopleController"
optionLabelPath="model.fullName"
optionValuePath="model.id"
prompt="Pick a person:"
selectionBinding="App.selectedPersonController.person"
})
由于 Ember 的“使用 /^*Binding/-NAMED PROPERTIES 自动创建绑定”功能,其中两个属性content
和selection
已绑定到应用程序的其他部分 - 请参阅Ember 绑定 API 文档。
optionLabelPath (no '-Binding') 是单向绑定还是只是一劳永逸地传递值?
其他 3 个(没有“-Binding”)属性没有什么特别之处。每个都被设置为一个简单的字符串。Ember.Select
将遍历内容数组 (App.peopleController) 并使用optionLabelPath
查找数组中每个项目的标签。并optionValuePath
用于查找值。
有什么不同?
所以任何以结尾的东西Binding
都期待通往其他对象的路径。其他所有内容都只是作为字符串传递。Ember.Select 恰好以Path
一种特殊的方式使用这两个属性,但这只是一个命名约定。