【问题标题】:pnotify prompt dialog not showing in an ember projectpnotify 提示对话框未显示在 ember 项目中
【发布时间】:2015-01-12 07:31:21
【问题描述】:

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

有没有人成功地让它工作?

jsbin:pnotify with ember

【问题讨论】:

    标签: ember.js pnotify


    【解决方案1】:

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

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

    ...
    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 中的一个错误。

    【讨论】:

    • 感谢详细解释!
    猜你喜欢
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 2016-05-30
    • 2017-02-05
    相关资源
    最近更新 更多