在Ember 1.8中扩展选择

时间:2014-10-31 15:55:34

标签: ember.js

我现有的代码扩展了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,而不是"

enter image description here

(最后一部分,如你所见,缺少)

我在这里做错了什么?

2 个答案:

答案 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}}

我希望这可能对你有所帮助。