[英]How to access module info inside another module in TypeScript?
我正在使用AngularJS2和TypeScript開發NativeScript應用程序。 我創建了一個文件config.ts
來存儲我的API URL。
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;
}
}
不知道這是正確的方法。 但是,它解決了問題。 如果有人知道更好的方法,這樣做會非常有用。
我要啟動的是Config模塊,而不是其中的Config類。
您可以嘗試將“ default”關鍵字添加到“ export class Config”行,或嘗試使用“ new Config.Config()”啟動配置實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.