Angularjs 在ng repeat中单击时如何禁用按钮?

Angularjs 在ng repeat中单击时如何禁用按钮?,angularjs,Angularjs,我想在单击时禁用按钮,然后如果单击另一个按钮,则上一个禁用按钮将处于活动状态,然后当前按钮将禁用,依此类推 HTML 这个代码会给我这个错误 TypeError: Cannot set property '2' of undefined at copywriter-angular.js?ver=1.2:1234 at angular.min.js?ver=4.8:134 at m.$digest (angular.min.js?ver=4.8:145) at m.

我想在单击时禁用按钮,然后如果单击另一个按钮,则上一个禁用按钮将处于活动状态,然后当前按钮将禁用,依此类推

HTML

这个代码会给我这个错误

TypeError: Cannot set property '2' of undefined
    at copywriter-angular.js?ver=1.2:1234
    at angular.min.js?ver=4.8:134
    at m.$digest (angular.min.js?ver=4.8:145)
    at m.$apply (angular.min.js?ver=4.8:149)
    at l (angular.min.js?ver=4.8:102)
    at XMLHttpRequest.A.onload (angular.min.js?ver=4.8:107) "Possibly unhandled rejection: {}"

只需在上面定义
$scope.dis
测试功能即可

$scope.dis= [];
$scope.test = function(i){
  $scope.dis[i] = true;
}

只需在上面定义
$scope.dis
测试功能即可

$scope.dis= [];
$scope.test = function(i){
  $scope.dis[i] = true;
}

我认为你的逻辑是错误的。您需要使用
disabled
属性扩展对象数组,例如
ng disabled=“item.disabled”
,而不是使用单独的数组来禁用按钮

但是如果您想要一个单独的数组,下面是初始化它的方法,因为否则它是空的,因此您无法访问
dis[index]
来禁用该按钮

var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.items=[{
名称:“苹果”
}, {
名称:“香蕉”
}, {
名字:“胡萝卜”
}, {
名称:“鸡腿”
}, {
名字:“鸡蛋”
}];
$scope.dis=$scope.items.map((){
返回false;
});
$scope.test=功能(i){
$scope.dis[i]=true;
}
});

{{item.Name}

我想你的逻辑是错误的。您需要使用
disabled
属性扩展对象数组,例如
ng disabled=“item.disabled”
,而不是使用单独的数组来禁用按钮

但是如果您想要一个单独的数组,下面是初始化它的方法,因为否则它是空的,因此您无法访问
dis[index]
来禁用该按钮

var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.items=[{
名称:“苹果”
}, {
名称:“香蕉”
}, {
名字:“胡萝卜”
}, {
名称:“鸡腿”
}, {
名字:“鸡蛋”
}];
$scope.dis=$scope.items.map((){
返回false;
});
$scope.test=功能(i){
$scope.dis[i]=true;
}
});

{{item.Name}

您是否忘记将
$scope.dis
声明为数组?(可以这么简单吗?)您是否忘记将
$scope.dis
声明为数组?(可以这么简单吗?)不仅要定义,还要填充
true
/
false
值(数组长度与
$scope.items
)不仅要定义,还要填充
true
/
false
值(数组长度与
$scope.items
$scope.dis= [];
$scope.test = function(i){
  $scope.dis[i] = true;
}