离子/棱镜上的qz-tray 2.0打印在成功打印后崩溃

时间:2016-06-08 06:03:06

标签: angularjs ionic-framework

我有离子的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;
        },

1 个答案:

答案 0 :(得分:0)

而不是修改上游库,它将是一个更好的永久解决方案:

  1. 检查hasOwnProperty on iteration

    --- OR ---

  2. 使用上游项目找出有关粘贴代码的具体内容breaking { enumerable: false, ... } on the prototype object