AngularJS复选框模型值未定义

 手机用户2502885997 发布于 2023-02-08 14:51

我有一个问题,我试图在我的模型中将复选框的值发布到服务器,并且因为复选框没有在表单上进行交互,当我要求时,angular似乎没有为它赋值.它的值是未定义的.

这是我的标记:

这是我的控制器上的保存操作的简化版本:

$scope.save = function (form) {
    if (form.$valid) {
        var formData = new FormData();
        // this is the problem line of code
        formData.append("disabled", $scope.template.disabled);
        // ... some other stuff
    }
};

实际上,在我点击保存操作之前勾选然后取消选中复选框会导致template.disabled属性为false,这是我没有任何人工干预的预期.

我已经看到了其他相关问题,例如AngularJS:初始复选框值不在模型中,但肯定会像一个简单的复选框那样被烘焙?我不一定要写指令来管理复选框吗?

2 个回答
  • 当页面加载(或刷新)时,以下内容将始终将状态设置为"未选中".换句话说,只要刷新页面,它就会覆盖用户的实际选择.

    <input type="checkbox" ng-model="template.disabled" 
     ng-init="template.disabled=false" />
    

    但是,如果您希望最初将复选框状态设置为默认状态,并且您还希望它记住用户交互,那么以下是您想要的.

    <input type="checkbox" ng-model="template.disabled" 
     ng-init="template.disabled = template.disabled || false" />
    

    2023-02-08 14:53 回答
  • 这是每个设计.如果您想在模型上使用默认值,而不是在控制器内部初始化它(推荐),或者使用ng-init.

    app.controller('AppController',
        [
          '$scope',
          function($scope) {
            $scope.template = {
              disabled = false
            };
          }
        ]
      );
    
    <div class="form-group">
      <input type="checkbox" ng-model="template.disabled" ng-init="template.disabled=false" />
      <label>Disabled</label>
    </div>
    

    2023-02-08 14:54 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有