我正在构建一个Ionic 2(RC0)应用程序,我正在尝试按node-uuid使用official documentation。
我做完了:
$ npm install --save node-uuid
$ npm install --save @types/node-uuid
node-uuid似乎正在使用默认的导出方法,所以我在我的打字稿文件中导入它,如下所示:
import uuid from 'node-uuid';
使用如下:
console.log(uuid.v4);
但是,我的应用程序没有出现,我在日志中看到了这个错误:
TypeError: des$3 is undefined
我缺少什么?
Angular 2的大多数资源建议使用typings CLI来安装类型定义,但这对我没有任何影响。我试过了:
$ npm install --global typings
$ typings install --save node-uuid
$ ionic info
Your system information:
Cordova CLI: You have been opted out of telemetry. To change this, run: cordova telemetry on.
6.3.1
Ionic Framework Version: 2.0.0-rc.0
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
OS: Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS
Node Version: v6.6.0
******************************************************
Dependency warning - for the CLI to run correctly,
it is highly recommended to install/upgrade the following:
Please install your Cordova CLI to version >=4.2.0 `npm install -g cordova`
******************************************************
答案 0 :(得分:2)
请注意,node-uuid为deprecated。他们与另一个项目合并,现在它只被称为uuid。一直到安装@types库的一切都是正确的。 (请注意,您必须使用'uuid'而不是'nod-uuid'重做这些步骤。
然而,
console.log(uuid.v4);
不会生成ID。根据文档,您需要在导入中指定要使用的uuid版本,然后将变量作为方法调用:uuid();
来自docs: [弃用警告:不推荐使用require('uuid'),在此模块的3.x版之后将不再支持。相反,请使用require('uuid / [v1 | v3 | v4 | v5]'),如下例所示。]
以下是使用uuid / v1的代码示例:
import { Component } from '@angular/core';
import uuid from 'uuid/v1'; //here change 'v1' with the version you desire to use
@Component({
selector: "page-uuid",
templateUrl: "uuid.html"
})
export class uuidTestPage {
id = uuid();
constructor() {
console.log(this.id); // outputs id. For example: 298da400-1267-11e8-a6e5-3148ee6706e9
}
}
在您提供应用程序并输入uuidTestPage后,您应该会看到记录到控制台的ID。 id的格式将根据您使用的版本而有所不同:
版本1(时间戳):我的例子。
版本3(命名空间)
第4版(随机) 等...
快乐的编码!
答案 1 :(得分:0)
你可以试试:(angular2-uuid)
npm install angular2-uuid --save
...
import { UUID } from 'angular2-uuid';
...
let uuid = UUID.UUID();
它适用于角度2&离子2