我使用AngularJS2&amp ;;正在使用NativeScript应用程序。打字稿。我已经创建了一个文件config.ts
来存储我的API网址。
config.ts的代码
export class Config {
apiUrl = "https://incandescent-fire-8397.firebaseio.com/";
}
然后,从另一个名为user.service.ts
的文件中,我试图访问apiUrl
值。但是,不知道该怎么做。试过几个排列&组合,但到现在为止没有运气。
user.service.ts的代码
import {Injectable} from "@angular/core";
import {User} from "./user";
import Config = require("../config");
@Injectable()
export class UserService {
config: any;
constructor() {
this.config = new Config();
}
register(user: User) {
alert("API url going to use is : "+this.config.apiUrl);
}
}
需要一些指导。
此致
------问题已修复-------
更新了user.service.ts
文件
import {Injectable} from "@angular/core";
import {User} from "./user";
import {ConfigService} from "../config";
@Injectable()
export class UserService {
apiUrl = "https://incandescent-fire-8397.firebaseio.com/";
register(user: User,config:ConfigService) {
//alert("About to register: " + user.email);
alert("API url going to use is : "+config.apiUrl);
}
}
然后,我访问app.componets.ts
方法的模块(register
)更新如下 -
import {Component} from "@angular/core";
import {User} from "./shared/user/user";
import {UserService} from "./shared/user/user.service";
import {ConfigService} from "./shared/config";
import {HTTP_PROVIDERS} from "@angular/http";
import firebase = require("nativescript-plugin-firebase");
@Component({
selector: "my-app",
providers: [UserService, HTTP_PROVIDERS,ConfigService],
templateUrl: "pages/login/login.html",
styleUrls: ["pages/login/login-common.css", "pages/login/login.css"]
})
export class AppComponent {
user: User;
isLoggingIn = true;
config:any;
constructor(private _userService: UserService, private _configSerice:ConfigService) {
this.user = new User();
this.config = new ConfigService();
}
submit() {
if (this.isLoggingIn) {
this.login();
} else {
this.signUp();
}
}
login() {
// TODO: Define
console.log('Clicked on Login button');
firebase.init(<any>{
persist: true // Allow disk persistence. Default false.
}).then(
function (instance) {
console.log("firebase.init done");
},
function (error) {
console.log("firebase.init error: " + error);
}
);
}
signUp() {
this._userService.register(this.user,this.config);
}
toggleDisplay() {
this.isLoggingIn = !this.isLoggingIn;
}
}
不知道这是一种正确的做法。但是,它解决了这个问题。如果有人知道有更好的方法可以做到这一点,那么会很多。
答案 0 :(得分:0)
我认为你正在启动Config模块而不是其中的Config类。
您可以尝试将“default”关键字添加到“export class Config”行,或尝试使用“new Config.Config()”启动配置实例。