我正在使用pnotify错误和成功对话框没有任何问题,但提示对话框不想显示。我得到一个Uncaught TypeError: Cannot read property 'addClass' of undefined
错误。
有没有人成功地让这个工作?
jsbin:使用 ember 进行通知
我正在使用pnotify错误和成功对话框没有任何问题,但提示对话框不想显示。我得到一个Uncaught TypeError: Cannot read property 'addClass' of undefined
错误。
有没有人成功地让这个工作?
jsbin:使用 ember 进行通知
这是一个工作示例: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 中的一个错误。