私の英語で申し訳ありませんが、
ミックスインでビューを拡張しようとしています。コードは coffeescript です:
ビュー-films_film_view.js.coffee
App.FilmsFilmView = Em.View.extend App.ModalViewMixin,
templateName: 'films/show'
ミックスイン - 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」をロードしたときに、ミックスインがまだ初期化されておらず、エラーが発生しているようです。