我的项目中有重复的代码。
我把它从其他组件中分离出来,使它在改变一些值时更容易和动态。不幸的是,它不适合我。
这是我的资料Repeated Code: form.ts
export class Form {
constructor(){
var today = new Date(),
dd = today.getDate(),
mm = today.getMonth() + 1,
yyyy = today.getFullYear();
if(dd < 10) dd = `0${dd}`;
if(mm < 10) mm = `0${mm}`;
today = `${yyyy}-${mm}-${dd}`;
this.balance.dateTo = today;
}
public balance = {
viewBy: 'Ad1',
companyUnit: 'DEPED',
financialYear: '2016',
clients: 'Dummy Text 1'
};
}
在其他组件中,如余额、结算等...
我把它放在上面。
以下是我尝试过的方法:
import { Form } from '../form'; // path is correct
export class BalanceComponent {
form: Form; // I am not sure of it
// this is the place I want to import repeated class
search_data(balance){
console.log(balance);
}
}
systemjs.config.js
(function (global) {
System.config({
paths: {
// paths serve as alias
'npm:': 'node_modules/'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
app: 'app',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
'ng2-pagination': 'npm:/ng2-pagination',
// other libraries
'rxjs': 'npm:rxjs',
'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
app: {
main: './main.js',
defaultExtension: 'js'
},
rxjs: {
defaultExtension: 'js'
},
'angular-in-memory-web-api': {
main: './index.js',
defaultExtension: 'js'
},
'ng2-pagination': {
main: 'index.js', defaultExtension: 'js'
}
}
});
})(this);
1条答案
按热度按时间f87krz0w1#
现在需要初始化窗体对象。
如果要在组件之间共享此值,最好的方法是创建服务,然后将其注入组件。
如果你在构造函数中输入
private formService:FormService
,你以后就可以像this.formService
一样访问这个变量。请记住,如果您的服务在共享模块中,您可能会得到它的多个示例,那么最好的办法是使用
Module.forRoot
配置模块。按照约定,forRoot静态方法同时提供和配置服务,它接受一个服务配置对象并返回一个ModuleWithProviders。
这里是完整的医生关于它。
只在根应用程序模块AppModule中呼叫forRoot。在任何其他模块中呼叫它,特别是在延迟载入的模块中,会与目的相反,而且可能会产生执行阶段错误。
记得导入结果;不要将其添加到任何其他@NgModule列表中。
然后导入模块如下所示: