나는 나에게 하나 개의 태그에 트위터 부트 스트랩 구성 요소를 사용 할 수 있도록하는 지침 구축하려는 :AngularJS와 지침 트위터 부트 스트랩
태그는 다음과 같습니다 :이 지침이
과 같은 <bootstrapinput
model="lastName"
key="lastName"
localized="Surname"
formpath="playerForm.lastName"
required>
</bootstrapinput>
을
.directive('bootstrapinput', function() {
return {
restrict:'E',
compile:function (tElement, tAttrs, transclude) {
var type = tAttrs.type || 'text';
var required = tAttrs.hasOwnProperty('required') ? 'required' : '';
var ngClazz = tAttrs.hasOwnProperty('formpath') ? 'ng-class="{error: ' + tAttrs.formpath + '.$invalid}"' : '';
var html = '<div class="control-group" ' + ngClazz + '>' +
'<label class="control-label" for="' + tAttrs.key + '">' + tAttrs.localized + '</label>' +
'<div class="controls">' +
'<input ng-model="'+tAttrs.model+'" type="' + type + '" id="' + tAttrs.key + '" name="' + tAttrs.key + '" placeholder="' + tAttrs.localized + '" ' + required + ' />' +
'</div>' +
'</div>';
tElement.replaceWith(html);
}
}
});
태그는 컨트롤러에 내장되어 있습니다. 그러나 스코프를 통해 컨트롤러에서 모델에 액세스하면 모델이 비어 있습니다. 또한 ng-class 속성이 평가되지 않습니다. 즉, CSS가 할당되어 있지 않습니다.
편집 모델에 대한 액세스가 작동합니다. 그러나 ng-class 속성은 여전히 제대로 평가되지 않습니다.
참조하십시오. – Humberto
'ng-class' 속성에서 무엇을 기대합니까? ngClazz 변수를 기반으로'ng-class'는'formpath' 속성이 있으면 빈 문자열입니다. – Humberto
양식 요소가 유효하지 않은 경우 (시작 부분에있는 내용) 해당 div의 CSS 클래스가 "오류"(트위터 부트 스트랩에서 사용) 여야합니다. 이 메커니즘은 양식 경로가 설정된 경우에만 활성화됩니다. 생성 된 HTML에서 ng 클래스가 올바르게 설정됩니다. 그러나 어떤 이유로 스타일링이되지 않습니다. – Soccertrash