搜尋

首頁  >  問答  >  主體

angular.js - angular中的自訂指令

minesweeper.directive('ngRightClick', function($parse) {
    return function(scope, element, attrs) {
        var fn = $parse(attrs.ngRightClick);
            element.bind('contextmenu', function(event) {
                scope.$apply(function() {
                    event.preventDefault();
                    fn(scope, {$event:event});
                });
        });
    };
});

如上程式碼,解釋說是自訂ngRightClick指令,但首先不能理解它的意思,再一個自訂指令不應該是下面這種形式嗎:

minesweeper.directive("mineGrid",function(){
    return {
        restrict:'E',
        replace:false,
        templateUrl:'./templates/mineGrid.html'
    }
});

求指教

phpcn_u1582phpcn_u15822731 天前1258

全部回覆(2)我來回復

  • phpcn_u1582

    phpcn_u15822017-05-27 17:46:42

    首先自訂右鍵不是自訂元素,不應約束為element,更不會有HTML。直接回傳function是直接傳回link function的簡寫,自訂右鍵應該約束為屬性。

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-27 17:46:42

    這是使用了angular的內建服務$parse,建議看看這篇文章AngularJS內幕詳解之 Directive

    回覆
    0
  • 取消回覆