2016-06-15 2 views
1

이렇게 모든 것이 component이어야합니다.지시문 (구성 요소)이없는 버튼 그룹 만들기

도메인 개체 편집/삭제 /보기 용 버튼 구성 요소를 정의한다고 가정합니다.

angular.module('xxx').component('editButton', { 
    bindings: {domainObject: '<'}, 
    template: '<button class="btn btn-default" ng-click="$ctrl.displayEditForm()">Edit</button>' 
    controller: /* ... */ 
}); 

그리고 내가로 사용 : 예를 들어

<edit-button domain-object="$ctrl.myDomainObject"></edit-button> 

위대한 작품! 내가 (예 A button group에 대한) 특정 마크 업을 필요로 할 때 그러나, 나는로 할 노력하고있어 :

내 버튼이 구성 요소 정의로 포장되어 있기 때문에 물론 부트 스트랩에 의해 올바르게 표시되지 않습니다
<div class="btn-group"> 
    <edit-button domain-object="object"></edit-button> 
    <delete-button domain-object="object"></delete-button> 
</div> 

.

replace functionality is deprecated을 염두에두면이 문제를 어떻게 극복 할 수 있을까요?

+0

을 사용하여 '>'하지 않도록

template: '<div class="btn-group"><button class="btn btn-default" ng-click="$ctrl.displayEditForm()">Edit</button>'...etc. 

지금, 당신은 부트 스트랩의 스타일을 재정의 할 수 있습니다 추상적 인 이상적인 구성 요소에 대해 - 자체 CSS가 있어야합니다. 실세계에 대해 이야기 해 본다면, 1.5도 각도의 지시어가 필요합니다. 2 도의 각도에서는 요소뿐만 아니라 html 속성도 일치시킬 수 있습니다. –

+0

그러면 @Component ({selector : '[my-component]'})'를 Angular 2로 생성 할 수있을 것입니다. 이것은 실제로 문제를 해결할 것입니다! 대답으로 게시 할 수 있습니까? – fracz

+0

방금 ​​[attribute directives] (https://angular.io/docs/ts/latest/guide/attribute-directives.html)를 찾았습니다. 그들은 Angular 2의 문제를 해결할 것입니다. 1.5에 대한 해결책은 deprecation이나'restrict : 'A'를 사용하는 지시에도 불구하고'replace '를 사용하는 것입니다. 너무 간단! – fracz

답변

1

구성 요소가 항상 html 요소는 아닙니다. 그것 일 수 있고 (수시로 html 성분의 그룹이다)

당신의 분대 템플렛은 주위 divbtn 그룹을 포함해야한다. 개별적 버튼을 다시 사용하려는 경우 당신이 이야기하는 경우가

.your-page .btn-group .btn:first-child:not(:last-child):not(.dropdown-toggle) { 
    border-top-right-radius: 0; 
    border-bottom-right-radius: 0; 
} 

대신

.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle) { 
     border-top-right-radius: 0; 
     border-bottom-right-radius: 0; 
} 
+0

SRP (구성 요소의 주요 이점)에 위배되므로 모든 구성 요소가 하나의 구성 요소에있는 것을 피하고 싶습니다. 부트 스트랩에서 CSS 코드를 복제하는 것은 * 완벽한 솔루션과는 거리가 있습니다. (필자가 제안한 것보다 복사하여 붙여 넣기가 더 많습니다.) 그럼에도 불구하고 당신의 아이디어는 어떻게 든 문제를 해결합니다 *. 고마워요. – fracz

+0

구성 요소 기반 응용 프로그램에는 많은 요소와 다른 하위 구성 요소가 포함 된 구성 요소가있을 것입니다. (각도 기사의 영웅리스트 예제를 보라) 나는 SRP 이론을 극단적으로 추진하고 있다고 생각한다. 여기서 구성 요소는 객체의 상태를 제어 할 책임이 있습니다. – gyc

+0

물론 구성 요소는 계층을 만들 수 있습니다. 그러나 'my-button-group'구성 요소의 유일한 책임은 'edit-button'및 'delete-button'과 같은 특수 구성 요소를 그룹화해야합니다. 'my-button-group' 컴포넌트가 객체 편집과 삭제 세부 사항에 신경을 써야한다면, 새로운 버튼이 추가 될 때마다 코드가 커질 것입니다. 확실히 틀린 설계 요소 일 것입니다. – fracz