Angularjs 如何在单击时获取属性值?
嘿,伙计们,当我点击按钮时,我需要得到按钮的数据值。我试过用这种方法,但不起作用Angularjs 如何在单击时获取属性值?,angularjs,Angularjs,嘿,伙计们,当我点击按钮时,我需要得到按钮的数据值。我试过用这种方法,但不起作用 var app = angular.module('myApp', []); app.controller("myAppCtrl", function($scope, $attrs) { $scope.events = {} $scope.events.btnLoadMore = function() { var panel = $attrs.emptywidget;
var app = angular.module('myApp', []);
app.controller("myAppCtrl", function($scope, $attrs) {
$scope.events = {}
$scope.events.btnLoadMore = function() {
var panel = $attrs.emptywidget;
alert(panel);
}
});
HTML
点击
访问该数据属性的唯一方法是通过标准DOM访问,这在控制器内部是不明智的。传递到控制器中的$attrs
变量也不会给您太多信息,因为控制器与任何事情都没有直接关系(或者至少它不需要或不应该)
如果您需要这样做,那么您可以将ng单击更改为
ng-click="events.btnLoadMore('#panel2')"
然后更改btnLoadMore
函数的定义以获取参数。或者,您可以编写一个指令,该指令将被赋予该值,但这更复杂。但这取决于你想用它做什么。上面的方法应该可以使用,但是,访问该数据属性的唯一方法是通过标准DOM访问,这在控制器内部是不明智的。传递到控制器中的$attrs
变量也不会给您太多信息,因为控制器与任何事情都没有直接关系(或者至少它不需要或不应该)
如果您需要这样做,那么您可以将ng单击更改为
ng-click="events.btnLoadMore('#panel2')"
然后更改btnLoadMore
函数的定义以获取参数。或者,您可以编写一个指令,该指令将被赋予该值,但这更复杂。但这取决于你想用它做什么。上面的操作应该有效,但是您也可以使用angular.element和传入$event源的组合:
点击
var-app=angular.module('myApp',[]);
app.controller(“myAppCtrl”,函数($scope,$attrs){
$scope.events={}
$scope.events.btnLoadMore=函数($event){
console.log($event);
var panel=angular.element($event.target).attr(“数据清空Widget”);
控制台日志(面板);
}
});
您还可以使用angular.element和传入$event源的组合:
点击
var-app=angular.module('myApp',[]);
app.controller(“myAppCtrl”,函数($scope,$attrs){
$scope.events={}
$scope.events.btnLoadMore=函数($event){
console.log($event);
var panel=angular.element($event.target).attr(“数据清空Widget”);
控制台日志(面板);
}
});
您可以做一些不同的事情
1) 您可以通过如下函数传入数据
ng-click="events.btnLoadMore('#panel2')"
然后将函数更改为匹配,以便:
$scope.events.btnLoadMore = function(panel) {
alert(panel);
}
$scope.events.btnLoadMore = function(clickEvent) {
alert(clickEvent.target.attributes['data-emptywidget'].value);
}
2) 您可以通过$event参数传入数据
ng-click="events.btnLoadMore($event)"
然后将函数更改为匹配,以便:
$scope.events.btnLoadMore = function(panel) {
alert(panel);
}
$scope.events.btnLoadMore = function(clickEvent) {
alert(clickEvent.target.attributes['data-emptywidget'].value);
}
3) 您只需查看传递给函数的参数
$scope.events.btnLoadMore = function() {
alert(arguments[0].target.attributes['data-emptywidget'].value);
}
你可以做一些不同的事情
1) 您可以通过如下函数传入数据
ng-click="events.btnLoadMore('#panel2')"
然后将函数更改为匹配,以便:
$scope.events.btnLoadMore = function(panel) {
alert(panel);
}
$scope.events.btnLoadMore = function(clickEvent) {
alert(clickEvent.target.attributes['data-emptywidget'].value);
}
2) 您可以通过$event参数传入数据
ng-click="events.btnLoadMore($event)"
然后将函数更改为匹配,以便:
$scope.events.btnLoadMore = function(panel) {
alert(panel);
}
$scope.events.btnLoadMore = function(clickEvent) {
alert(clickEvent.target.attributes['data-emptywidget'].value);
}
3) 您只需查看传递给函数的参数
$scope.events.btnLoadMore = function() {
alert(arguments[0].target.attributes['data-emptywidget'].value);
}
谢谢你,安德鲁,这个对我来说是更好的解决方案!谢谢你,安德鲁,这个对我来说是更好的解决方案!