弹出窗口库toastr是否无法与Ember一起工作,因为它进行了直接的DOM操作,而Ember不喜欢这样做? 还有其他像这样与Ember良好配合的库吗?
编辑
即使通过下面发布的工作示例,我也无法在本地使其工作。最终我使用了Pine Notify,它立即就能正常工作。
弹出窗口库toastr是否无法与Ember一起工作,因为它进行了直接的DOM操作,而Ember不喜欢这样做? 还有其他像这样与Ember良好配合的库吗?
即使通过下面发布的工作示例,我也无法在本地使其工作。最终我使用了Pine Notify,它立即就能正常工作。
在Ember中这很好用,你只需要在正确的位置处理事件。 "正确的位置" 取决于你的实现方式。如果你想从视图中的按钮触发此操作,你需要使用{{action}}
助手传递动作名称。例子:
<script type="text/x-handlebars" ></script>
showInfo
事件,因此负责这个视图的Controller
应该有一个同名的函数。App.ApplicationController = Em.ArrayController.extend({
showInfo: function() {
toastr.info('This is some sample information');
}
});
您也可以让视图处理事件;下面的代码定义了一个 click
事件,因此,如果在视图中的任何位置单击,它将运行您的函数:
App.OtherView = Em.View.extend({
click: function(e) {
toastr.error('This is some sample error');
}
});
click
事件,所以你只需渲染视图并进行样式设置即可。{{#view App.OtherView class="btn btn-danger"}}
Error
{{/view}}
这里有一个JSFiddle的示例:http://jsfiddle.net/schawaska/YZwDh/
我建议你阅读Ember指南中关于{{action}}
辅助程序的内容。