많은 필드 세트가있는 복잡한 양식이 있고 선택한 필드 세트를 변경시 상단으로 이동시킬 선택 요소가 필요합니다. 나는 각도에 익숙하지 않고이 각도에 대해 생각하는 데 어려움을 겪고 있습니다!각도 값이있는 요소 참조
필자는 필드 세트를 가지고 있는데, 'switcher'지시문을 작성하고 초기화시 필드 세트의 전설로 채우고 선택한 요소의 제목을 로깅 할 콘솔을 만들지 만 실제 요소가 필요합니다. 그래서 그것을 DOM의 목록 맨 위로 옮길 수 있습니다. select 옵션의 값을 다른 html 요소와 연관시키는 방법은 무엇입니까? 아니면이 문제에 대한 더 나은 접근법이 있습니까?
내 양식 :<form>
<switcher></switcher>
<div class="switchable" ng-include="app/controls/outline"></div>
<div class="switchable" ng-include="app/controls/labelling"></div>
<div class="switchable" ng-include="app/controls/formatting"></div>
<!--... etc...-->
</form>
예는 다음과 같습니다
<fieldset>
<legend>Outline</legend>
<!--some form elements-->
</fieldset>
스위처 HTML :
<select ng-change="changeSwitch()" ng-model="selectedMenu"></select>
스위처 지침 :
angular.module('myApp')
.directive('switcher', function ($timeout) {
return {
templateUrl: 'app/directives/switcher/switcher.html',
restrict: 'EA',
replace: 'true',
link: function (scope, element, attrs) {
var setOptions = function() {
$('.switchable').each(function(i, ele){
$(element).append('<option>'+$(ele).find('legend').text()+'</option>');
});
}
$timeout(setOptions, 0);
scope.changeSwitch = function() {
console.log(scope.selectedMenu);
}
}
};
});
변경시 콘솔에 범례를 인쇄하지만 해당 div를 맨 위로 이동합니다.
고마워요. 제가 포함하고있는 것을 실험하기 시작했는데 실제로 포함 된 것이 자신의 지시문 일 필요가 있는지 궁금합니다. 부모를 지정하는 대신 부모에게 첨부하는 방법을 생각하지 않았습니다. 옵션을 배열로 만들어서 그 순서대로 색인을 생성 할 수 있다고 생각합니다. 바인딩을 통해 순서대로 다시 그려지는 것을 의미합니다. – Abby
순서와 일치하도록 필드 집합의 순서를 원한다면 옵션을 선택해야한다면, ** post-link ** 함수 대신에 ** pre-link ** 함수에서 switcher-option 지시문의 로깅 논리를 호출하면됩니다. 포스트 링크에서 논리가 호출되는 순간 옵션이 역순으로 표시됩니다. – getOffMyLawn
그 반대의 경우 - 필드 세트의 순서를 변경하고 싶습니다. 나는 옵션리스트가 배열이고, 인덱스에 의해 정렬 된 다음, onChange가 이동 된 요소를 튀어 나오게하고, 옵션의 인덱스 0에 놓으면 이것을 '각진'할 수 있다고 생각한다. 그리고 스위처가 옵션의 순서에 따라 필드 세트를 끌어 내도록하십시오. 그게 맞는 말이라면 ... – Abby