开发者问题收集

原始异常:未定义加密

2016-12-29
2715

我正在使用 Ionic 2 rc3 。我试图在其中一个组件中导入/包含一个 js 文件。

ts 文件

// declare var require: any
'use strict';
// var Encrypt = require('pages/service/jsencrypt.min');
declare var Encrypt: any;
...
this.encrypter = new Encrypt.JSEncrypt();

index.html

<script src="pages/service/jsencrypt.min.js"></script>

之前我使用的是 Ionic 2 beta ,当 index.html 中没有任何内容时,它运行正常,并且在 ts 文件顶部有 var Encrypt = require('pages/service/jsencrypt.min'); 。自从升级到 rc3 以来,我似乎无法让它导入/包含 js 文件。

更新

jsencrypt.js 文件中,它具有以下代码:

var JSEncrypt = function (options) {
    options = options || {};
    this.default_key_size = parseInt(options.default_key_size) || 1024;
    this.default_public_exponent = options.default_public_exponent || '010001'; //65537 default openssl public exponent for rsa key type
    this.log = options.log || false;
    // The private and public key.
    this.key = null;
};

在我的 ts 文件中,我需要获取 JSEncrypt 的句柄。我曾经在 beta 中执行以下操作:

this.encrypter = new Encrypt.JSEncrypt();

如果我尝试以下操作:

this.encrypter = this.JSEncrypt();

我在 CLI 中收到此错误:

Property 'JSEncrypt' does not exist on type 'PersonService'.

如何获取 JSEncrypt 的句柄?

谢谢

1个回答

我执行了以下步骤,对我来说,它完全正常工作。

  1. 使用 ionic start MyIonic2Project tutorial --v2 --ts 创建新的 Ionic 项目
  2. cd MyIonic2Project/src/assets 并创建一个包含以下代码的 test.js 文件:

    var Test = (function () { function Test() {

    }
    Test.prototype.showAlert = function () {
    alert("Yeee....I am called");
    };
    return Test;
    

    }());

  3. 然后我编辑了 MyIonic2Project/src/index.html 并在脚本标记中添加了“assets/test.js”
  4. 然后我打开 app.componemt.ts 文件并声明类定义上方的名为 Test 的变量: declare var Test:any;
  5. 然后在构造函数中,我编写了以下代码:

    let testVariable = new Test();

    testVariable.showAlert();

  6. 我使用 ionic serve 命令运行代码,并且能够看到警报。

确保您遵循了类似的步骤以使其正常工作。还要确保您使用的 js 库是正确的。

Prerak Tiwari
2016-12-29