제가 수정할 수없는 범위 문제가 있다고 생각합니다. 여기에 내 문제에 대한 설명이 있습니다.Angularjs 사용자 지정 지시문 ngShow가 트리거되지 않습니다
지시문이 정의 된 요소에 "img"HTML 템플릿을 삽입하기 위해 "my-create-content"라는 자체 지시문을 만들고 싶습니다. 그런 다음 "img"에서 ng-show를 정의하고 ng-show를 false로 평가하는 시간 초과를 지정했지만 "img"요소가 숨겨져 있지 않습니다. ng-src = "{{imageUrl}}"이므로 스코어 문제인 경우 제대로 평가됩니다.
.directive('myCreateContent', [function() {
function link(scope, element, attrs) {
scope.showImg = false;
function updateImg(url){
scope.imageUrl = url;
scope.showImg = true;
}
if (scope.grid[0].image){
updateImg(scope.grid[0].imageUrl);
setTimeout(function(){
scope.showImg = false;
}, scope.grid[0].duration);
}
}
return {
scope: {
grid: '='
},
template: '<img ng-show="showImg" ng-src="{{imageUrl}}" class="grid">',
link: link
};
}]);
그리고 HTML :
당신은 범위 변수를 이해하는 AngularJS와 대한$apply
를 호출 할 필요가
<div my-create-content grid="grid" class="container">
당신은 HTML에서 javascript를로드 했습니까? – anish
'setTimeout' 대신'$ timeout'을 삽입하여 사용하십시오. – AlwaysALearner