我有离子的qz-tray.js,它是有效的但是在成功打印后应用程序崩溃了,当我想导航到其他页面时,这里是日志
ionic.bundle.min.js:142 TypeError: Cannot read property 'params' of undefined
at i (ionic.bundle.min.js:423)
at Object.x.transitionTo (ionic.bundle.min.js:423)
at Array.<anonymous> (ionic.bundle.min.js:423)
at Object.e [as invoke] (ionic.bundle.min.js:73)
at g (ionic.bundle.min.js:423)
at ionic.bundle.min.js:423
at b (ionic.bundle.min.js:423)
at m (ionic.bundle.min.js:423)
at n.$broadcast (ionic.bundle.min.js:171)
at l (ionic.bundle.min.js:138)
我只是将qz-tray.js
作为依赖,然后是控制器
qz.websocket.connect().then(function () {
return qz.printers.find('MobilePrinter');
}).then(function (printer) {
var config = qz.configs.create(printer);
var data = [respon.data];
return qz.print(config, data).then(function () {
qz.websocket.disconnect();
});
})
它确实打印了数据,但在此之后应用程序崩溃了,任何帮助都将不胜感激,谢谢。
[解决]
这个函数影响数组迭代(for in),我评论原型解决问题(qz-tray.js
第500行)
stringify: function(object) {
//old versions of prototype affect stringify
var pjson = Array.prototype.toJSON;
delete Array.prototype.toJSON;
var result = JSON.stringify(object);
Array.prototype.toJSON = pjson;
return result;
},
答案 0 :(得分:0)
而不是修改上游库,它将是一个更好的永久解决方案:
hasOwnProperty
on iteration。{ enumerable: false, ... }
on the prototype object。