【问题标题】:Angularjs UI Bootstrap modal -- Checkboxes checked state not being updateAngularjs UI Bootstrap modal——复选框选中状态未更新
【发布时间】:2014-03-31 21:12:46
【问题描述】:

我正在使用 AngularJs ui 引导模式。我有一个带有复选框的页面。当用户选中复选框并单击按钮时,它将选中的复选框传递给模态:

var modalInstance = $modal.open({
   templateUrl: 'myModalContent.html',
   controller: ModalInstanceCtrl,
   resolve: {
     checkedSearches: function () {
         var checkedSearches = [];
         angular.forEach($scope.searches, function(search)
             {
                 if(search.checked) {
                     checkedSearches.push(search);
                 }
             });

            return checkedSearches;
      }
   }
 });

在我的模式中,我们再次将数据重新显示为复选框。用户可以选择/取消选中复选框并单击保存,它将保存所有选中的复选框。

var ModalInstanceCtrl = function ($scope, $modalInstance, checkedSearches) {
    $scope.checkedSearches = checkedSearches;

     var saveSearches = [];
     angular.forEach($scope.checkSearches, function(search)
              {
                  if(search.checked) {
                      saveSearches.push(search);
                  }
              });

} 

问题是,它正在保存所有复选框。似乎选中的属性与复选框保持一致,即使用户在模式中取消选中它也是如此。我没有包含保存搜索的代码。我基本上推到了 searchSearches 数组,它似乎推了所有的复选框,包括未选中的。

这是我的复选框视图/模式:

<tr ng-repeat="search in checkedSearches">
    <td><input type="checkbox" ng-checked="search.checked" name="search" ng-model="search.checked" /></td><td>{{search.id}}</td><td>{{search.name}}</td>
</tr>

【问题讨论】:

    标签: javascript angularjs twitter-bootstrap checkbox angular-ui-bootstrap


    【解决方案1】:

    好的,看起来问题是由于某种原因,复选框的选中属性未绑定模型。所以我添加了一个 ng-click 指令来处理这个问题:

    <tr ng-repeat="search in checkedSearches">
        <td>
            <input type="checkbox" name="search" ng-checked="search.checked" ng-click="setCheckbox(search)" />
         </td>
    </tr>
    

    我在模态控制器中添加了这个:

     $scope.setCheckbox = function(search) {
         if(search.checked == true) {
             search.checked = false;
         }
         else {
            search.checked = true;
         }
     };
    

    现在如果有人在那里,可以告诉我为什么复选框没有绑定到我的模型。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多