나는 그 상태 모델에 의존 마우스 클릭을 허용하는 사용자 정의 DOM 요소를 필요로하고 -AngularJS 사용자 지정 지시문을 바인딩하고 마우스 이벤트를 수락하는 방법은 무엇입니까?
나는 그것의 DOM을 통해 컨트롤러의 범위 변수에 결합하는 사용자 정의 지시어를 구축 할 수 있어요<card ng-repeat="card in cards" x="card.x"
y="card.y" color="card.color" on-click="test_click('b')">
</card>
속성 사용 그들에게보기를 바꾼다. 내가 범위를 주석에 의해 (고립 된 범위를 생성하고 일부 재배 선을 수행하여 컨트롤러까지 전파 마우스 클릭 이벤트를 얻을 수 있어요
app.directive('card', function ($timeout) {
return {
restrict:'E',
link:function (scope, element, attrs) {
element.addClass('card');
element.click(function(){
scope.onClick()
});
scope.$watch(attrs.x, function (x) {
element.css('left', x + 'px');
});
scope.$watch(attrs.y, function (y) {
element.css('top', y + 'px');
});
scope.$watch(attrs.color, function (color) {
element.css('backgroundColor', color);
});
}
/*
,scope:{
x:'=',
y:'=',
color:'=',
onClick: "&"
}
*/
};
});
: 나는 그것의 부모 범위를 상속하는 지시어를 허용하여이 작업을 위에서).
그러나 두 가지 동작을 동시에 수행 할 수는 없습니다.
나는 x 변수를 속성 값에 바인딩해야한다고 가정합니다. 그러나 내가 생각할 수있는 모든 구문 조합을 시도해도, 나는 그것을 작동시키는 것처럼 보이지 않습니다.
여기 완전한 경우 jsfiddle
아, 아주 좋고 코드가 적습니다. –