【问题标题】:qz-tray 2.0 printing on ionic/angularjs crashed after successful print成功打印后,在 ionic/angularjs 上的 qz-tray 2.0 打印崩溃
【发布时间】:2016-10-08 05:50:27
【问题描述】:

我在 ionic 上有 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 line 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;
        },

【问题讨论】:

    标签: angularjs ionic-framework


    【解决方案1】:

    与其修改上游库,这将是更好的永久解决方案:

    1. 检查hasOwnProperty on iteration

      --- 或 ---

    2. 与上游项目合作,找出粘贴代码 breaking { enumerable: false, ... } on the prototype object 的具体内容。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多