我正在尝试设置控制器的属性
尝试这样做
{{view Ember.Select contentBinding="App.tastingsController.names"}}
它不起作用
App.tastingsController = Ember.ArrayController.extend
names: ["Velato", "Abbastanza limpido", "Limpido", "Cristallino", "Brillante"]
虽然此版本正常运行(但会发出此警告:WARNING: The immediate parent route did not render into the main outlet and the default 'into' option may not be expected
)
App.tastingsController.names = ["Velato", "Abbastanza limpido", "Limpido", "Cristallino", "Brillante"]
这是我的路线:
App.Router.map ->
@route "home", { path: "/" }
@route "about"
@resource "tastings", ->
@route "new"
@resource "tasting", { path: ":tasting_id"}
你能解释一下为什么吗?
(找到它here)
谢谢
马
答案 0 :(得分:0)
您的代码存在一些问题:
App.tastingsController
应命名为App.TastingsController
。控制器类应以大写字母开头。
您收到警告是因为您在路径层次结构中跳过了模板。我需要更多关于路线的信息来帮助解决这个问题。
如果您需要在控制器上设置属性(例如您的names
),有两种方法可以执行此操作:
将其设置在路线中:
App.TastingsRoute = Ember.Route.extend({
setupController: function(controller, model) {
controller.set('names', names: ['list', 'of', 'names']);
}
});
或者您可以在定义控制器类时直接设置它:
App.TastingsController = Ember.ArrayController.extend({
content: [],
names: ['list', 'of', 'names']
});
当您需要从视图/模板引用控制器时,请不要命名整个控制器类。只需使用要绑定的属性(假设您的视图的控制器为App.TastingsController
)
{{view Ember.Select contentBinding="names"}}
希望这有帮助。