내 목표는이 지침에 의해 생성 된 "전설"을 수정할 수있는 다음 각 플러그인을 사용하고
후 속성 지시자를 평가합니다. 이를 위해 지시문은 rz-slider-options 속성에서 Array를받습니다. 예 : 컨트롤러에서
다음 HTML에서
angular
.module('exampleApp')
.controller('MyController', Controller);
function Controller() {
var $ctrl = this;
$ctrl.slider = {
value: 1,
options: {
showTicksValues: true,
stepsArray:[{value: 1, legend: 'red'}, {value: 1, legend: 'green'}, {value: 1, legend: 'blue'}, {value: 1, legend: 'red'}]
}
}
}
내 생각은 사용자 지정 지시문을 추가의 수정 :
<div ng-app="exampleApp">
<div ng-controller="MyController as $ctrl">
<rzslider rz-slider-model="slider.value" rz-slider-options="slider.options" ></rzslider>
</div>
</div>
이 수행하면 생성됩니다 이 지시어와 관련된 일부 DOM 요소. 나는 이런 식으로 뭔가를하고 싶어, 내 지시어가 my-directive
을라고 가정하자 :
angular
.module('exampleApp')
.directive('reds', MenuGeo);
MenuGeo.$inject = ['$timeout'];
function MenuGeo($timeout){
var ddo = {
restrict: 'A',
link: linkFn
};
return ddo;
function linkFn(scope, el, attrs){
var legendsList = el[0].getElementsByClassName('rz-tick-legend');
console.log(legendsList);
}
}
그런 다음,이 같은 HTML을 수정하고 있습니다 :
<div ng-app="exampleApp">
<div ng-controller="MyController as $ctrl">
<rzslider rz-slider-model="slider.value" rz-slider-options="slider.options" reds></rzslider>
</div>
</div>
하지만 내 지시어의 console.log
이 []
를 반환합니다. 따라서 요소 지시문 rzslider
이 내 지시문이 호출 될 때 작업을 계속한다고 생각합니다.
내 질문 : rzslider의 전체 작업이 완료된 후 내 지침이 어떻게 평가 될 것입니까? 내 지시어는 요소를 얻을 달성 봤는데
http://codepen.io/gpincheiraa/pen/mRBdBy
UPDATE하지만,이를 위해 나는 $timeout
문장을 추가해야합니다
A는 그것을 여기에서 사용할 수 codepen. 내 새로운 질문은 다음과 같습니다.
rzslider 지시문을 사용한 후에 내 지시문이 평가되지 않은 이유는 무엇입니까? $ timeout을 사용하지 않으면 어떻게됩니까?
내 업데이트 설명을 확인하시기 바랍니다. 감사합니다 –
당신의 codepen 예제와 함께 업데이트 된 질문을 보았습니다. 문제는 즉시 평가되는 (그리고 DOM이로드되기 전에)'el [0]'부분 인 것으로 보인다. 반면에'el.children()'과'el.find()'와 같은 함수는 DOM 노드가로드 된 후에 실행되므로, 예제에서'el [0]'대신 사용될 수 있습니다. –
DOM을로드 한 후에 만'el [0]'을 사용할 수 있다고 생각하고 이것을 확실히하기 위해'$ timeout' 함수 내에 래핑되어야한다. 그렇지 않으면 JQuery의'$ (document) .ready (function() {..}'비슷한 효과를냅니다. –