2014-12-08 5 views
0

내가 지시 업데이트하려고 업데이트 될 때 DOM 요소를 조작하는 방법 : 사용자의 속성이`isPlaying``이 거짓이되면공장이

<video class="me" ng-if="User.CurrentRoom.Users[0].isPlaying" ng-src="{{User.CurrentRoom.Users[0].videoSrc}}" autoplay></video> 
<video class="other" ng-if="User.CurrentRoom.Users[1].isPlaying" ng-src="{{User.CurrentRoom.Users[1].videoSrc}}" autoplay></video> 

내가 비디오 요소의 pause 메소드를 호출하고 싶습니다를 .

나는 이런 식보고 시도 :

function link(scope, element, attrs) { 
    scope.$watch(User.CurrentRoom, function(Room) { 
     console.log('CATCH THE EVENT'); 
    }) 
} 

을하지만 해고 아니에요. 여기

은 공장 :

angular.module('myapp').factory('User', function() { 
    return { 
    Rooms: [], 
    CurrentRoom: {} 
    } 
}); 

당신은 어떻게 할 것인가? 팩토리가 변경되면 지시문 내부에서 DOM 요소를 조작합니다.

+0

당신은 공장 코드를 게시 할 수 있습니까? –

+0

@Avraam 방금 완료되었습니다. – Ludo

답변

0

개체를 자세히 보려는 경우 $watch 호출은 3d 인수를 true로 설정해야합니다.

objectEquality == true 일 때 watchExpression의 부등호는 angular.equals 함수에 따라 결정됩니다. 나중에 비교할 수 있도록 개체의 값을 저장하려면 angular.copy 함수가 사용됩니다. 따라서 복잡한 객체를 보는 것은 불리한 메모리와 성능에 영향을 미친다는 것을 의미합니다.

scope.$watch('User.CurrentRoom', function(Room) { 
    console.log('CATCH THE EVENT'); 
}, true); 
관련 문제