javascript - 复选框仅在第二次单击后更新模型

标签 javascript angularjs checkbox

请查看以下 Plunkr:http://plnkr.co/edit/hwVL3xtnD9hGJLpULDjI?p=preview

当您第一次单击复选框时,模型不会更新。 为什么会这样?

var app = angular.module('main', ['ngMaterial'])
    .controller('DemoCtrl', function($scope, $filter, $http) {
      $scope.propdata = [];
      $scope.success ="loading..";
      var url = "api.json";
       $http({url:url,
         method:"GET"
       }).then(function (rs){
         $scope.propdata = rs.data[0];
         $scope.success ="done..";
       });
    });

最佳答案

您返回的 json 有一个 1 值,而不是 truefalse。如果您将数据更改为 truefalse,它将识别初始值。另一种选择是将“1”转换为 bool 值,然后对其进行赋值。

编辑:

另一种选择是在您的复选框上设置 ng-true-valueng-false-value,以便它识别您使用的 0 和 1 值。请注意双引号“'1'”后的单引号以识别字符串。这里的例子:

HTML

<div class="checkbox {{font_size}}">
     <label for="garden_service">
          <input type="checkbox" id="garden_service"
                      ng-checked="propdata.garden_service==1" ng-true-value="'1'" ng-false-value="'0'"
                       ng-model="propdata.garden_service">Garden Service <br/>model value:{{propdata.garden_service}}
     </label>
</div>

http://plnkr.co/edit/t280UjC3NYNtQt28W1wm?p=preview

官方文档链接:https://docs.angularjs.org/api/ng/input/input%5Bcheckbox%5D

关于javascript - 复选框仅在第二次单击后更新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36620508/

相关文章:

Javascript删除合并某些属性的对象列表中的重复项

javascript - 在 Angular 应用程序中将页面导出为 pdf

html - 复选框样式提示

javascript - 样式为按钮的复选框输入不再触发 'change' 事件

javascript - Webpack 2 - babel-loader - 如何排除 node_modules?

javascript - 保存当前用户值以在 HTML 中使用

javascript - 将鼠标悬停在 ng-disable input as textbox 上的文本上

node.js - 模块未在 karma 中定义

javascript - 外循环和内循环中的 ng-repeat 和 $index

javascript - 用于切换所有选择的复选框