2014-10-31 111 views
0

我现有的代码扩展灰烬选择:在灰烬扩展一个选择1.8

App.AreaSelect = Em.Select.extend(Em.TargetActionSupport, { 
     (...)  
    }); 

模板使用这样的:

{{view App.AreaSelect content=areas value=selectedArea}} 

现在,apparently做的这样,在灰烬已经改变1.8:

"views are more appropriately resolved on the application via strings"

(?这意味着什么。)

所以,在我的模板尝试这样的:

{{view "areaSelect" content=areas value=selectedArea}} 

我刚收到以下错误信息:

"Uncaught Error: Assertion Failed: areaSelect must be a subclass of Ember.View, not "

enter image description here

(最后的部分是,你可以看到,缺少的)

我在这里做错了什么?

回答

2

你得到的错误实际上是因为它找不到名为areaSelect的视图。

您选择视图的命名约定不正确。它必须以“查看”结束。如果您将其重命名为App.AreaSelectView,则应该正确解析。

App.AreaSelectView = Ember.Select.extend({ 
     // blah 
    }); 

例如参见JSBin

0

由于您无法通过ember 1.8解析全局上下文的视图,因此您可以将视图注册为“帮助器”并在模板中进行访问。

为了您的情况,请尝试下面的代码。

...  
Ember.Handlebars.helper('areaSelect', App.AreaSelect); 
... 

和模板代码是这样的:

{{areaSelect content=areas value=selectedArea}} 

我希望这也许对你有所帮助。