4
我有兩個組件幾乎完全相同,代碼可重用性我想將這些組件在我的項目中的不同位置組合使用。兩者都是帶複選框的下拉列表。唯一不同的是進出數據。Angular 2使2個幾乎相同的組件中的一個「通用」組件
import {ROUTER_DIRECTIVES, RouteConfig, RouteParams, Router, RouterOutlet, RouterLink} from 'angular2/router';
import {FORM_PROVIDERS, FORM_DIRECTIVES, Control, NgClass, NgIf, CORE_DIRECTIVES} from 'angular2/common';
import {Component, Inject, Input, OnInit, OnChanges} from 'angular2/core';
import {Http, Headers, ContentHeaders, HTTP_PROVIDERS} from 'angular2/http';
import {User} from '/app/interfaces';
import {ActualsComponent } from '../actuals/actual.component';
import {ProjectService} from '../../projects/project.service';
import {LoginService} from '../../login/login.service';
import {SearchPipe} from '../custom-pipes/search-pipe';
@Component({
selector: 'dropdown-users',
templateUrl: 'app/templates/elements/dropdown-users.html',
providers: [FORM_PROVIDERS, HTTP_PROVIDERS, ProjectService, LoginService],
directives: [ROUTER_DIRECTIVES, FORM_DIRECTIVES, RouterLink, CORE_DIRECTIVES, RouterOutlet],
pipes: [SearchPipe]
})
export class DropDownUsers implements OnInit, OnChanges{
projectdata: Object;
selectedUsers: Object;
public showMenu: boolean;
projectSearchTerm: Control = new Control();
projectcount: number;
constructor(@Inject(ProjectService) projectService: ProjectService, @Inject(LoginService) loginService: LoginService, private http: Http, params: RouteParams) {
this.showMenu = false;
loginService.authenticate("user", "pwd");
this.projectdata = loginService.data;
this.projectcount = 0;
this.selectedUsers = new Array();
}
addUser(user: User){
this.selectedUsers.push(user);
}
}
其他組件是相同的,除了它與用戶,而不是項目。
有沒有一種方法來共同模板和CSS在基地SS?也就是說,當它們對於琴絃來說太長時。 – CalvinDale
@Sasxa我知道這是錯誤的,但如果你有時間可以幫助你解決這個問題(https://stackoverflow.com/q/44665815/1938988) –