我想将用户活动发送到服务器,尤其是用户点击的按钮。
我知道我可以这样做。
HTML:
<button type="button" class="btn btn-primary" ng-click="pressA()">A</button>
<button type="button" class="btn btn-primary" ng-click="pressB()">B</button>
JS:
$scope.pressA = function() {
sendServer("A");
// Do other things for button A
}
$scope.pressB = function() {
sendServer("B");
// Do other things for button B
}
function sendServer(msg) {
var req = new XMLHttpRequest();
var params = "msg=" + encodeURIComponent(msg);
req.open("POST", "/scripts/log");
req.send(params);
}
但是这种方式要求我向所有ng-click事件插入sendServer
。这很麻烦。我能以更有效的方式做到这一点吗?
答案 0 :(得分:0)
为什么不在范围内使用sendServer()
函数并使用ng-click
指令传递参数?
示例:
$scope.sendServer = function(message) {
// do things
}
HTML 的
<button type="button" class="btn btn-primary" ng-click="pressA('A')">A</button>
<button type="button" class="btn btn-primary" ng-click="pressB('B')">B</button>
答案 1 :(得分:0)
如果要为您定义的每个ng-click
执行某些操作,可以定义自定义ngClick
指令来完成工作。
.directive('ngClick', function() {
return {
restrict: 'A',
priority: 1, // built-in ngClick has priority 0
link: function(scope, element, attr) {
element.on('click', function() {
// do something
});
}
}
});
但是,这不会涵盖所有操作(aHref,ngSubmit ......)。