Angularjs 在角度模式下使用ng repeat时更改输入参数
我需要为一个单独的输入更改ng Disabled值,该输入由ng repeat指令显示 我有:Angularjs 在角度模式下使用ng repeat时更改输入参数,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我需要为一个单独的输入更改ng Disabled值,该输入由ng repeat指令显示 我有: <li ng-repeat="lang in langs"> <label> <input type="radio" name="language" ng-disabled="isDisabled" ng-model="langs.name"
<li ng-repeat="lang in langs">
<label> <input
type="radio"
name="language"
ng-disabled="isDisabled"
ng-model="langs.name"
ng-value="$index"
ng-change="getIndex($index)"
/>
<span> {{lang.name}} </span>
</label>
</li>
谢谢。您可以允许将属性“isDisabled”添加到您的模型中:
<li ng-repeat="lang in langs">
<label> <input
type="radio"
name="language"
ng-disabled="lang.isDisabled"
ng-model="lang.name"
ng-value="$index"
ng-change="getIndex($index)"
/>
<span> {{lang.name}} </span>
</label>
</li>
或者,如果不想改变模型,可以执行以下操作:
控制器:
var app = angular.module("app", []);
app.controller('Ctrl', function ($scope) {
$scope.isDisabled = {};
$scope.langs = [
{ name: 'French' },
{ name: 'English' },
{ name: 'German' },
{ name: 'Chinese' },
{ name: 'Dutch' }
];
});
HTML
您能解释一下第二种解决方案吗?因为我试着这么做,但没有成功。如果我使用第一个变量-如何将ng repeat中的所有项设置为“disabled=true”?我将为第二个解决方案提供一个演示。如果你还有问题,请告诉我。如果使用第一种解决方案,则循环控制器中的每个lang,并将isDisabled设置为true
$scope.langs[0].isDisabled = true;
var app = angular.module("app", []);
app.controller('Ctrl', function ($scope) {
$scope.isDisabled = {};
$scope.langs = [
{ name: 'French' },
{ name: 'English' },
{ name: 'German' },
{ name: 'Chinese' },
{ name: 'Dutch' }
];
});
<body ng-app="app" ng-controller='Ctrl as ctrl'>
<ul>
<li ng-repeat="lang in langs">
<label>
<input
type="radio"
name="language"
ng-disabled="isDisabled[lang.name]"
ng-model="ctrl.selectedLanguage"
ng-value="lang.name"
/>
<span> {{lang.name}} </span>
</label>
</li>
</ul>
<br />
{{ ctrl.selectedLanguage }} <br />
{{ isDisabled }}
</body>
$scope.isDisabled[$scope.langs[0].name] = true;