gpt4 book ai didi

ember.js - 在ember的Mixins中使用coffeescript的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-02 06:11:28 24 4
gpt4 key购买 nike

为我的英语道歉,

我正在尝试使用混合扩展 View 。代码是coffeescript:

查看-films_film_view.js.coffee

App.FilmsFilmView = Em.View.extend App.ModalViewMixin,

templateName: 'films/show'

Mixin-modal_view_mixin.js.coffee
App.ModalViewMixin = Em.Mixin.create

modalView: null

click: ->
@showModalView()

close: ->
@closeModalView()


closeModalView: ->
if @modalView
@modalView.close()


showModalView: ->
@closeModalView()
@modalView = @createModalView()
if @modalView
@modalView.append()

当我尝试加载应用程序时,应用程序将引发以下错误:
Assertion failed: Expected hash or Mixin instance, got [object Undefined] 

那么,写这个的正确方法是什么?

提前致谢

更新:

解决:
App.ModalViewMixin = Em.Mixin.create

modalView: null

click: ->
@showModalView()

close: ->
@closeModalView()


closeModalView: ->
if @modalView
@modalView.close()


showModalView: ->
@closeModalView()
@set modalView, @createModalView()
if @modalView
@modalView.append()



App.FilmsFilmView = Em.View.extend App.ModalViewMixin,

templateName: "films/show"

看起来当应用程序加载“FilmsFilmView”时,mixin仍未初始化,并导致错误。

最佳答案

发生这种情况是因为在运行时:

App.FilmsFilmView = Em.View.extend(App.ModalViewMixin, ...
App.ModalViewMixin是 undefined 的,必须在使用前定义。

确保 App.ModalViewMixin出现在 App.FilmsFilmView之前。

关于ember.js - 在ember的Mixins中使用coffeescript的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18157171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com