简体   繁体   English

使用多个下拉和ng-reapeat的动态ng模型

[英]dynamic ng-model using multiple dropdown and ng-reapeat

Hello every one i have a language multiple selection input. 大家好,我有一个语言多选输入。 On select language i need to open textboxes of selected language with dynamic ng-model. 在选择语言时,我需要使用动态ng-model打开所选语言的文本框。 this is my json and code. 这是我的json和代码。

[{"id":"1","lang":"English"},{"id":"2","lang":"Arabic"},{"id":"3","lang":"Français"}]

<select class="form-control" ng-model="language" multiple required >
   <option value="" disabled="">Select Language</option>
   <option ng-repeat="l in lang" value="{{l.id}}">{{l.lang}}</option>
</select>

<div class="form-group" ng-repeat="lng in language" >
   <label class="col-md-2" style="padding-right: 0px;">Name {{lang[lng-1].lang}}</label>
   <div class="col-md-10" >

       <input type="text" ng-model="typename.lang[lng-1].id" required >
   </div>

Try this : 尝试这个 :

 var myApp = angular.module('myApp',[]); myApp.controller('MyCtrl',function($scope) { $scope.lang = [{ "id": "1", "lang": "English" }, { "id": "2", "lang": "Arabic" }, { "id": "3", "lang": "Français" }]; $scope.submitLang = function(selectedLang) { console.log(selectedLang); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="myApp" ng-controller="MyCtrl"> <select class="form-control" ng-model="language" ng-options="option.lang for option in lang" multiple required ></select> <div ng-repeat="lng in language"> <label>{{lng.lang}}</label> <input type="text" ng-model="selectedLang" required ng-change="submitLang(selectedLang)"> </div> </div> 

personally I would use ng-options instead of ng-repeat like this 我个人会使用ng-options而不是像这样的ng-repeat

Controller: 控制器:

$scope.inputs = [];
    $scope.languagues = [{"id":"1","lang":"English"},{"id":"2","lang":"German"},{"id":"3","lang":"Spanish"}];
    $scope.showTextbox= function (option) {
       $scope.inputs = [];
       for(var i = 0; i < option.length; i++){
          $scope.inputs.push({name: option[i], value: 'test'+i})
       }  
    }      

html: HTML:

<select class="form-control" ng-model="language" ng-options="option.lang as option.lang for option in languagues"   ng-change="showTextbox(language)" multiple required ></select>
  <div ng-repeat="item in inputs">
  <br>
    <label>{{item.name}}</label><br>
    <input type="text" ng-model="item.value" required >
    <p>
       {{item.value}}
    </p>
  </div>   

Here is a fiddle showing the changes Fiddle 下面是该变化的小提琴小提琴

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM