Gle*_*ger 20 angularjs angularjs-directive
我认为在开箱即用的指令上使用众所周知的角度属性应该很容易.
例如,如果我的指令的名称是myDirective,我想以这种方式使用它:
<div ng-controller="myController">
<my-directive ng-click="doSomething()"><my-directive>
</div>
Run Code Online (Sandbox Code Playgroud)
而不是像下面的示例中那样需要定义自定义单击属性(onClick)
<div ng-controller="myController">
<my-directive on-click="doSomething()"><my-directive>
</div>
Run Code Online (Sandbox Code Playgroud)
似乎ng-click可以工作,但是你需要在指令标签上指定ng-controller,我不想要.我想在周围的div上定义控制器
是否可以使用ng-click指令和父html元素上定义的控制器?
mig*_*ech 33
这是更新的代码.也许这就是你要找的东西.
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>
Run Code Online (Sandbox Code Playgroud)
角度:
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!');
};
}]);
Run Code Online (Sandbox Code Playgroud)
编辑
检查我在jsFiddler中制作的解决方案是你要找的?
http://jsfiddle.net/migontech/3QRDt/1/
| 归档时间: |
|
| 查看次数: |
49129 次 |
| 最近记录: |