pnotify提示对话框未在ember项目中显示

时间:2014-11-14 20:01:50

标签: ember.js pnotify

我正在使用pnotify错误和成功对话框,没有任何问题,但提示对话框不想显示。我收到Uncaught TypeError: Cannot read property 'addClass' of undefined错误。

有没有人成功地让这个工作?

jsbin:pnotify with ember

1 个答案:

答案 0 :(得分:1)

以下是一个工作示例:http://jsbin.com/fuqoke/1/

那么问题是什么。好吧,Ember使用原型扩展。这种在不实现它们的浏览器中填充ECMAScript 5数组方法,为内置数组添加了便利方法和属性,并使数组突变可观察。问题是pnotify期望与普通的oldschool javascript数组一起使用。例如,它想要在数组上循环的代码片段:

...
for (var i in options.buttons) {
 btn = options.buttons[i];
...

此循环还将迭代Ember添加到数组的方法(例如addObjects,firstObject,....)

有两种解决方法:

1)你修改pnotify代码并贡献它;),用更强大的实现来循环数组

        ...
        for (var i = 0; i < options.buttons.length; i++) {
            btn = options.buttons[i];
        ...

        ...
        for (var i in options.buttons) {
           if(options.buttons.hasOwnProperty(i)){
            btn = options.buttons[i];
            ...  

2)您禁用了Ember的原型扩展,我不推荐。在这里,您可以找到更多信息:http://emberjs.com/guides/configuring-ember/disabling-prototype-extensions/但它会让您遇到很多麻烦。

简而言之,这肯定是pnotify中的一个错误。

相关问题