簡體   English   中英

處理對angularjs指令的已包含內容的單擊

[英]Handling click on transcluded content of an angularjs directive

所以可以說我有一個看起來像這樣的指令:

(function () {
    'use strict';

    angular
        .module('app')
        .directive('foo', foo);

    /* @ngInject */
    function foo() {
        var directive =  {
            restrict : 'E',
            controller: controller,
            controllerAs: 'vm',
            link: link,
            transclude : true,
            replace : true,
            bindToController: true,
            scope: {},
            template : '<div><div ng-transclude></div>'
        };

        return directive;

        function controller() {
            var vm = this;
            vm.click = function () {
                // do something, add class whatever
            }
        }
        function link(scope, elem, attrs) {}
    }



}());

現在,如果我像這樣使用指令:

<foo>
   <button ng-click="vm.click()">Click me!</button>
</foo>

我想訪問指令的點擊功能,該怎么做?

如果其中的指令本身是用隔離的范圍定義的,則不能將被包含的內容范圍創建為其指令范圍的子級。

請參閱: 為什么ng-transclude的作用域不是其指令的作用域的子級-如果該指令具有隔離的作用域?

因此,kwan245的答案對於您的特定示例是正確的。

從指令聲明中刪除scope: {} ,它應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM