【问题标题】:how to bind dynamically dropdown based checkbox true in ng-repeat using angulrajs如何使用angularjs在ng-repeat中动态绑定基于下拉的复选框true
【发布时间】:2017-05-04 17:38:02
【问题描述】:

大家好,我正在使用 angularjs ng-repeat 我在重复里面有复选框和下拉列表现在我需要的是当我检查复选框值时我想绑定下拉但现在当我选中复选框时所有下拉值都已更改但我需要我想绑定基于下拉的复选框帮助如何解决

ng-重复代码

 <div ng-repeat="BFMaterialStream in BFMaterialStreams">
   <input type="checkbox" ng-change="checkchange(BFMaterialStream.MaterialStream,$index)"
   ng-model="selection.ids[BFMaterialStream.MaterialStream]" name="group" id="BFMaterialStream.MaterialStream" />
    {{BFMaterialStream.MaterialStream}} 
        <select id="MaterialElevator" tabindex="7" required typeof="text" name="Elevator"
         form="DistanceMatrixFormId" class="form-control" 
          ng-model="ViewGetBUMaterialStream.ToElevator"
     >
     <option value=''>Select</option>
     <option ng-repeat="ViewGetBUMaterialStream in ViewGetBUMaterialStreams "
      value="{{ViewGetBUMaterialStream.ToElevator}}"
      >
     {{ViewGetBUMaterialStream.ToElevator}}
    </option>
     </select>
       </div>

检查更改时间绑定代码

$scope.checkchange = function(Stream, index) {
     $http.get('/ViewGetBUMaterialStream/' + Stream ).then(function (response) {
           $scope.ViewGetBUMaterialStreams = response.data;
     });
}

【问题讨论】:

    标签: angularjs checkbox


    【解决方案1】:

    $scope.ViewGetBUMaterialStreams 设为数组。

    在 HTML 中将重复更改为

    <option ng-repeat="ViewGetBUMaterialStream in ViewGetBUMaterialStreams[$index]"
          value="{{ViewGetBUMaterialStream.ToElevator}}">
    

    将您的$scope.ViewGetBUMaterialStreams = response.data 分配更改为$scope.ViewGetBUMaterialStreams[index] = response.data

    JS 看起来像这样:

    $scope.ViewGetBUMaterialStreams = [];
    $scope.checkchange = function(Stream, index) {
         $http.get('/ViewGetBUMaterialStream/' + Stream ).then(function (response) {
               $scope.ViewGetBUMaterialStreams[index] = response.data;
         });
    };
    

    【讨论】:

    • 超级感谢 Mr.Amir Suhail。我尝试过这种方式,但我忘记将范围纳入数组
    • 没问题。只是一个指针,在 ng-repeated 上使用 ng-options 始终是最佳实践
    • 另一个查询当我选择下拉我需要 suto 自动检查复选框
    • 什么是主要区别选项并重复
    • The main difference is when the select model bound to a non-string value, option wont able to repeat that.请参阅文档docs.angularjs.org/api/ng/directive/select
    【解决方案2】:

    您可能想使用ng-options 指令:

    <select ng-model="ViewGetBUMaterialStream.ToElevator"
            ng-options="stream.ToElevator as stream for stream in ViewGetBUMaterialStreams">
         <option value=''>Select</option>
    </select>
    

    Here is a JSFiddle of a simple use case of ng-options

    【讨论】:

    • same yar 因为 ngrepeat 每次我必须检查复选框值将全部更改下拉
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 2013-08-16
    • 1970-01-01
    • 2016-10-31
    • 2015-07-26
    • 2014-09-05
    • 1970-01-01
    相关资源
    最近更新 更多