Javascript 角度单击事件共享到其他单击
假设我有两个使用AngularJS ng click的链接,它们都有相同的点击事件,通过传递相同的范围变量Javascript 角度单击事件共享到其他单击,javascript,angularjs,Javascript,Angularjs,假设我有两个使用AngularJS ng click的链接,它们都有相同的点击事件,通过传递相同的范围变量 ui.myclick(myVar1, myVar2, myVar3) <a ng-click="ui.myclick(myVar1, myVar2, myVar3)">link1</a> <a ng-click="ui.myclick(myVar1, myVar2, myVar3)">link2</a> 那么我的ng单击将只是: <
ui.myclick(myVar1, myVar2, myVar3)
<a ng-click="ui.myclick(myVar1, myVar2, myVar3)">link1</a>
<a ng-click="ui.myclick(myVar1, myVar2, myVar3)">link2</a>
那么我的ng单击将只是:
<a ng-click="commonclick">Link1</a>
<a ng-click="commonclick">Link2</a>
Link1
链接2
您可以在控制器中添加该功能,并在ng click属性上使用它,如下所示:
<div ng-controller="MyCtrl as m">
<a ng-click="m.f(arg)">Link 1</a>
<a ng-click="m.f(arg)">Link 2</a>
</div>
<script>
angular
.module('app', [])
.controller('MyCtrl', ['$scope', function($scope) {
$scope.f = function(arg) {
console.log(arg);
}
}])
;
</script>
链接1
链接2
有棱角的
.module('应用程序',[])
.controller('MyCtrl',['$scope',函数($scope){
$scope.f=函数(arg){
控制台日志(arg);
}
}])
;
您可以在控制器中添加该功能,并在ng click属性上使用它,如下所示:
<div ng-controller="MyCtrl as m">
<a ng-click="m.f(arg)">Link 1</a>
<a ng-click="m.f(arg)">Link 2</a>
</div>
<script>
angular
.module('app', [])
.controller('MyCtrl', ['$scope', function($scope) {
$scope.f = function(arg) {
console.log(arg);
}
}])
;
</script>
链接1
链接2
有棱角的
.module('应用程序',[])
.controller('MyCtrl',['$scope',函数($scope){
$scope.f=函数(arg){
控制台日志(arg);
}
}])
;
不,你不能按你想做的方式去做。阻碍是您不能使用bind
方法或function
,您可以使用它们在ngInit中创建函数。不过,我至少可以想到两种变通办法
1。控制器中的辅助工厂
。。。
其中,createFunction
在控制器中定义为:
$scope.createFunction = function(fn) {
var args = [].slice.call(arguments, 1);
return function() {
return fn.apply(null, args);
};
};
然后您将能够使用commonclick
as
<a ng-click="commonclick()">Link1</a>
<a ng-click="commonclick()">Link2</a>
不,你不能用你想做的方式去做。阻碍是您不能使用
bind
方法或function
,您可以使用它们在ngInit中创建函数。不过,我至少可以想到两种变通办法
1。控制器中的辅助工厂
。。。
其中,createFunction
在控制器中定义为:
$scope.createFunction = function(fn) {
var args = [].slice.call(arguments, 1);
return function() {
return fn.apply(null, args);
};
};
然后您将能够使用commonclick
as
<a ng-click="commonclick()">Link1</a>
<a ng-click="commonclick()">Link2</a>
如果您的目标是使标记尽可能干净,您可以将设置
ng click
作为一个函数,使用和ng repeat
标记:
<a ng-repeat="link in links" ng-click="clickFunction(link)">{{link}}</a>
.controller('Main Controller', function($scope) {
$scope.links = ['Link1', 'Link2']; //define links
$scope.clickFunction = function(value) {
//define what clickFunction does
}
})
如果您的目标是使标记尽可能干净,您可以将设置
ng click
作为一个函数,使用和ng repeat
标记:
<a ng-repeat="link in links" ng-click="clickFunction(link)">{{link}}</a>
.controller('Main Controller', function($scope) {
$scope.links = ['Link1', 'Link2']; //define links
$scope.clickFunction = function(value) {
//define what clickFunction does
}
})
不,这不是可用于
ng click
的语法,我也不建议这样做。您的控制器正是您想要处理事件逻辑的位置,或者如果您正在使用指令,则位于指令内部。请回答您的问题。不,这不是可用于ng click
的语法,我也不建议这样做。您的控制器正是您要处理事件逻辑的位置,或者如果您正在使用指令,则位于指令内部。请回答您的问题。