我需要接受鼠標點擊一個自定義的DOM元素,其狀態是依賴於模型: -AngularJS自定義指令,你如何綁定和接受鼠標事件?
<card ng-repeat="card in cards" x="card.x"
y="card.y" color="card.color" on-click="test_click('b')">
</card>
我能夠建立一個通過DOM綁定到一個控制器的範圍內的變量自定義指令屬性和使用他們改變它的觀點。
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
哦,這是相當不錯,代碼少。 –