我正在尝试设置一个模式窗口,如本文所述:
http://blog.atmartin.io/a-dead-simple-ember-cli-modal/作者指出,openModal操作是在应用程序/控制器/应用程序.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}}所以,我试过了(我可能错了……)要在book.js路由中插入openModal操作(单击按钮时):
// 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发布于 2016-05-02 21:05:25
您正在使用的教程使用了Ember最新版本中已弃用和删除的构造(视图)。
我建议你在最新版本的https://github.com/yapplabs/ember-modal-dialog中使用Ember插件来创建模态。
https://stackoverflow.com/questions/36982058
复制相似问题