我是新手,我正在按照教程进行操作。我的代码是从教程视频中逐字逐句的,但是我的代码并非如此。我收到错误"找不到姓名'承诺'我无法弄清楚原因。有谁知道我为什么会收到这个错误?
import {Control} from 'angular2/common'
export class UsernameValidators{
static shouldBeUnique(control: Control){
return new Promise ((resolve) => {
setTimeout(function(){
if(control.value == "andy")
resolve({shouldBeUnique: true})
else
resolve(null);
}, 1000);
});
}
static cannotContainSpace(control: Control){
if (control.value.indexOf(' ') >=0)
return {cannotContainSpace: true};
return null;
}
}
答案 0 :(得分:0)
您似乎使用的是Angular2的测试版。以下答案假设您正在使用:
"@angular/common": "2.0.0",
"@angular/compiler": "2.0.0",
"@angular/core": "2.0.0",
"@angular/forms": "2.0.0",
"@angular/http": "2.0.0",
"@angular/platform-browser": "2.0.0",
如果您使用的是Angular 2.0.0或更高版本,则可以执行以下操作:
import { FormControl } from "@angular/forms";
import { Promise } from "./path/to/node_modules/es6-promise";
export class UsernameValidators {
static shouldBeUnique(control: FormControl) {
return new Promise((resolve) => {
setTimeout(function () {
if (control.value === "andy")
resolve({ shouldBeUnique: true });
else
resolve(null);
}, 1000);
});
}
static cannotContainSpace(control: FormControl) {
if (control.value.indexOf(" ") >= 0)
return { cannotContainSpace: true };
return null;
}
}
答案 1 :(得分:0)
如果您的经验找不到名称'Promise'。,大多数情况下您已经更改了基本设置中的某些文件,或者您可能没有成功完成节点包安装。 Angular2不再使用typings
包。
解决方案:
npm install
并确保其成功完成