[英]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.