Ember.js模态组件 - 我应该在哪里编写openModal操作?

时间:2016-05-02 12:07:30

标签: ember.js modal-dialog

我正在尝试设置一个模态窗口,如本文所述:

http://blog.atmartin.io/a-dead-simple-ember-cli-modal/

作者表示openModal操作是在app / controllers / application.js中编写的......

import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
    openModal: function(targetId) {
        var modal = Ember.Views.views[targetId];
        modal.send('toggleModal');
    }
}
});

但是,我正在使用书籍列表页面中的组件,使用测试按钮:

  <button {{action 'openModal' 'modal-author'}}>Open Author Modal Window</button>

 {{#simple-modal enabled=false title="--Simple Modal --" id="modal-author"}}
     Modal text. Oh girl!
 {{/simple-modal}}

所以,我尝试(我可能错了......)将openModal动作(当点击按钮时)插入book.js路线:

// app/routes/books.js
import Ember from 'ember';
export default Ember.Route.extend({
model() {
    return this.store.findAll('book');
},
actions: {
     openModal: function(targetId) {
     var modal = Ember.View.views[targetId];
     modal.send('toggleModal');
  },
  ....
 }
});

在这种情况下,我收到错误Ember.view似乎未定义......

books.js:11 Uncaught TypeError: Cannot read property 'views' of undefined

1 个答案:

答案 0 :(得分:0)

您正在使用一个使用已弃用的&amp;删除了最近版本的Ember中的构造(视图)。

我建议您使用https://github.com/yapplabs/ember-modal-dialog插件在最新版本的Ember中创建模态。