我现有的代码扩展了Ember Select:
App.AreaSelect = Em.Select.extend(Em.TargetActionSupport, {
(...)
});
在模板中使用它:
{{view App.AreaSelect content=areas value=selectedArea}}
现在,apparently这种做法在Ember 1.8中发生了变化:
"views are more appropriately resolved on the application via strings"
(无论那意味着什么......?)
所以,在我的模板中尝试这个:
{{view "areaSelect" content=areas value=selectedArea}}
我刚收到以下错误消息:
"未捕获错误:断言失败:areaSelect必须是。的子类 Ember.View,而不是"
(最后一部分,如你所见,缺少)
我在这里做错了什么?
答案 0 :(得分:2)
您获得的错误实际上是因为找不到名为areaSelect的视图。
您的选择视图的命名约定不正确。它必须以“View”结束。如果将其重命名为App.AreaSelectView,则应正确解析。
App.AreaSelectView = Ember.Select.extend({
// blah
});
例如,请参阅JSBin。
答案 1 :(得分:0)
由于您无法从ember 1.8解析全局上下文中的视图,因此您可以将视图注册为“帮助程序”并在模板中访问它。
对于您的情况,请尝试以下代码。
...
Ember.Handlebars.helper('areaSelect', App.AreaSelect);
...
并在模板代码中表示:
{{areaSelect content=areas value=selectedArea}}
我希望这可能对你有所帮助。