我写了一篇关于问题的新帖子,以提供更多细节。
我尝试在我的离子2项目中创建一个类,我使用这段代码:
import { Component } from '@angular/core';
@Component({
templateUrl: 'field.html'
})
export class test {
x : number;
constructor(x : number){
this.x = x;
}
}
我想在我的其他组件中使用它。在我的终端中使用“离子服务”进行编译时,它可以工作。但是当我尝试在我的Android手机上编译时,我有这个错误:
[09:54:06] Error at C:/xampp/htdocs/AppFineMobile/.tmp/classes/fieldSpecs/test.ngfactory.ts:42:71
[09:54:06] Property 'number' does not exist on type 'typeof
"C:/xampp/htdocs/AppFineMobile/.tmp/classes/fieldSpecs/test"'.
[09:54:06] ngc failed
[09:54:06] ionic-app-script task: "build"
[09:54:06] Error: Error
npm ERR! Windows_NT 10.0.14393
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build"
npm ERR! node v7.0.0
npm ERR! npm v3.10.8
npm ERR! code ELIFECYCLE
npm ERR! ionic-hello-world@ build: `ionic-app-scripts build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ionic-hello-world@ build script 'ionic-app-scripts build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ionic-hello-world package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! ionic-app-scripts build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs ionic-hello-world
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls ionic-hello-world
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! C:\xampp\htdocs\AppFineMobile\npm-debug.log
我不明白为什么。首先,我在提供程序文件上尝试相同的代码,但同样的问题。
有人有什么想法吗?
答案 0 :(得分:2)
当一个类用@component
修饰时,这些类是由angular Dependency Injection
框架创建的,它试图从构造函数参数的类型中找到提供者作为查找它的关键。
string
,number
,boolean
,Object
等原始类型不能用作密钥。我不确定为什么它没有失败ionic serve
。您可以详细了解DI
here.
答案 1 :(得分:0)
我找到了解决方案,但我认为这不是我真正需要做的事情:
import { Component } from '@angular/core';
@Component({
templateUrl: 'field.html'
})
export class test {
x : number;
constructor(){}
initClass(x : number) {
this.x = x;
}
}
我的构造函数保持为空,我在另一个方法上写参数。这是工作,但如果有人真正纠正我的问题,我说是的! :d