点击属性angularjs指令(ng-click attribute on angularjs di

2019-07-23 05:21发布

我认为这应该是很容易在指令中使用众所周知的角属性开箱。

例如,如果我的指令的名称是myDirective我想用这种方式:

<div ng-controller="myController">
   <my-directive ng-click="doSomething()"><my-directive>
</div>

代替需要来定义自定义属性的点击(的onClick)如下面的例子

<div ng-controller="myController">
   <my-directive on-click="doSomething()"><my-directive>
</div>

看来,NG-点击可以工作,但那么你就需要太多,我不想指定有关该指令的标签NG-控制器。 我想定义的周围DIV控制器

是否有可能使用一个指令连同父html元素上定义的控制器NG点击?

Answer 1:

下面是更新后的代码。 也许这就是你所期待的。

HTML:

<div data-ng-app="myApp">
    <div data-ng-controller="MyController">
        <my-directive data-ng-click="myFirstFunction('Hallo')"></my-directive>
        <my-directive data-ng-click="mySecondFunction('Hi')"></my-directive>
    </div>
</div>

角度:

var app = angular.module('myApp', []);

app.directive('myDirective', function(){
    return {
        restrict: 'EA',
        replace: true,
        scope: {
            eventHandler: '&ngClick'
        },
        template: '<div id="holder"><button data-ng-click="eventHandler()">Call own function</button></div>'
    };
});

app.controller('MyController', ['$scope', function($scope) {
    $scope.myFirstFunction = function(msg) {
         alert(msg + '!!! first function call!');   
    };
    $scope.mySecondFunction = function(msg) {
         alert(msg + '!!! second function call!');   
    };
}]);

编辑

检查的解决方案,我在做jsFiddler是什么你要找的人?

http://jsfiddle.net/migontech/3QRDt/1/



文章来源: ng-click attribute on angularjs directive