Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在角度模式下使用ng repeat时更改输入参数_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Angularjs 在角度模式下使用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"

我需要为一个单独的输入更改ng Disabled值,该输入由ng repeat指令显示

我有:

<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;