2016-06-21 2 views
0

잘 작동하는 Component 클래스 내에 @Input을 추가하여 추가 속성을 전달하려고했습니다. 그러나, 나는 아이디, 새로운 클래스, 즉 구성 요소 지침에 정의 된 모든 속성을 전달하는 방법을 확실하지 오전AngularJS 2 : 여분의 속성을 템플릿에 전달하십시오.

<my-directive disabled style="color: red;">{{my name}}</my-directive> 

이에서

<button class="my-button" disabled style="color: red">{{my name}}</button> 

으로 확대해야한다, 클래스 속성은 구성 요소의 템플릿 파일 내에서 작성 & disabled style="..."은 템플릿으로 전달됩니다.

// Component code 

import { Component } from 'angular/core'; 

@Component({ 
selector: 'my-directive', 
template: ` 
      <button class="my-button">It should be fetched from outside</button> 
     ` 
}); 


export class MyDirective{  
    constructor(){ 

    } 
} 
+0

당신이 우리에게 구성 요소 클래스 코드를 보여줄 수와 같은 입력에 전달 된 값을 전파 할 수 있습니까? – rinukkusu

+0

@rinukkuu 구성 요소 코드가 추가되었습니다. –

답변

0

style 위해 당신은 임의의 스타일을 설정하는 ngStyle를 사용할 수 있지만,이 입력에 관련이 없습니다.

모든 입력을 하나씩 만 설정할 수 있습니다. 여러 입력 또는 모든 입력을 한 번에 설정할 수있는 방법은 없습니다.

당신은 모든 자신을 입력을 만들고

@Input() input1; 
@Input() input2; 
@Input() input3; 

@Input() 
set all(data) { 
    this.input1 = data.input1 || this.input1; 
    this.input2 = data.input2 || this.input2; 
    this.input3 = data.input3 || this.input3; 
} 
+0

그리고 구성 요소 지시문을 사용하는 동안이 입력을 어떻게 사용합니까? –

+0

무슨 뜻인지 확실하지 않습니다. 아마도 "allValues">는 {input1 : 'a', input2 : 'b', input3 : 'c'}'입니다. –

+0

나는 이것에 대해 생각했지만 뭔가를 원한다. 그래서 내 지시어를 사용하는 개발자는 추가 속성을 전달하는 방법을 알 필요가 없다. html 속성을 추가하는 것만 큼 간단해야한다. –

관련 문제