0
내가 가지고있는 DOM에 표시되는 이미지를 제어하는 지시자 :.
summariesApp.directive('changePlus', function() {
return function changePlus(scope, element, attr) {
if (scope.$parent.Tab == "MultiVariant")
if (scope.$parent.multis[parseInt(attr.a)].show) {
element[0].src = 'Images/hide.png';
}
else {
element[0].src = 'Images/show.png';
}
}
else {
element[0].src = 'Images/show.png';
}
element.on('mousedown', function (event) {
var imgName = event.target.src.split("/");
if (imgName[imgName.length - 1] == 'show.png') {
event.target.src = 'Images/hide.png'
}
else {
event.target.src = 'Images/show.png'
}
});
}
});
문제는 내가 서비스를 호출 할 때 나는이 지침에 대해 원하는 것입니다 운영. $ scope. $ apply를 사용하고 다이제스트 사이클을 실행하는 것으로 생각하면이 지시어를 평가할 수는 있지만 그렇지 않습니다. $ scope에있는 지시어로 뷰를 재평가 할 수있는 방법이 있습니까? $ apply?
$scope.$watch('myModelProperty', function() {
// do something
});
$scope.buttonClicked = function() {
$scope.myModelProperty = "foo"; // This will trigger $watch expression
};
그러나 가장 좋은 방법은 당신의 서비스에 지시어의 속성을 결합하는 것입니다.
감사합니다, 나는 이미 $의 범위를 시도 $이 적용됩니다(). 어떻게 든 지시문은 $ apply에서 평가되지 않습니다. 그 이유는 무엇입니까? – Byc
죄송합니다. $ 범위를 의미했습니다. $ 시계 – Damien
조금 확장 할 수 있습니까? $ watch는 어떻게 사용합니까? 당신은 지시문에서 모델의 일부분을 관찰자로 설정하겠다고 말하고 있습니까? – Byc