在使用AngularJs的過程中,我們常常會用到一些ng-事件,如ng-click、ng-change等,這些事件都是AngularJs事先為我們定義好的。也有的情況下,我們會用到一些使用頻率不高的dom事件,如img的onload(圖片加載完成后觸發),但AngularJs中默認沒有這個事件,那么我們該如何自定義添加ng-load這個事件呢?
只需要給app對象添加如下指令即可:
myApp.directive('imageonload', function () {
return {
restrict: 'A', link: function (scope, element, attrs) {
element.bind('load', function () {
//call the function that was passed
scope.$apply(attrs.imageonload);
});
}
};
})
在Html中直接使用imageonload屬性追加事件:
<img ng-src="{{src}}" imageonload="doThis()" />
最后,在controller中寫對應的事件內容即可:
$scope.doThis=function(){ //your own code }
