49

堆栈溢出的菜鸟在这里。我正在开发一个具有转移工作功能的网页。这使用户可以选中复选框以将作业发送回办公室,或从所有可用的列表中选择技术人员。我的问题是如何设置复选框,以便在页面加载时默认选中它并相应地禁用选择列表。这是我目前拥有的代码:

<div ng-app="">
  Send to Office: <input type="checkbox" ng-model="checked" ng-checked="true"><br/>
  <select id="transferTo" ng-disabled="checked">
    <option>Tech1</option>
    <option>Tech2</option>
  </select>
</div>

这是一个 jsfiddle:http: //jsfiddle.net/hugmungus/LvHJw/5/

目前,页面加载时选中了复选框,但列表未禁用。如果您取消选中然后重新选中它,则列表将被禁用。

谢谢您的帮助!

4

4 回答 4

94

如果你使用 ng-model,你不想也使用 ng-checked。相反,只需将模型变量初始化为 true。 通常,您会在管理页面的控制器中执行此操作(添加一个)。 在您的小提琴中,出于演示目的,我只是在 ng-init 属性中进行了初始化。

http://jsfiddle.net/UTULc/

<div ng-app="">
  Send to Office: <input type="checkbox" ng-model="checked" ng-init="checked=true"><br/>
  <select id="transferTo" ng-disabled="checked">
    <option>Tech1</option>
    <option>Tech2</option>
  </select>
</div>
于 2013-06-28T21:55:39.190 回答
3

在控制器中执行(控制器语法如下)

控制器:

vm.question= {};
vm.question.active = true;

形式

<input ng-model="vm.question.active" type="checkbox" id="active" name="active">
于 2017-05-08T19:13:04.267 回答
0

您并不需要该指令,可以通过使用 ng-init 和 ng-checked 来实现。下面的演示链接显示了如何在 angularjs 中设置复选框的初始值。

演示链接

<form>
    <div>
      Released<input type="checkbox" ng-model="Released" ng-bind-html="ACR.Released" ng-true-value="true" ng-false-value="false" ng-init='Released=true' ng-checked='true' /> 
      Inactivated<input type="checkbox" ng-model="Inactivated" ng-bind-html="Inactivated" ng-true-value="true" ng-false-value="false" ng-init='Inactivated=false' ng-checked='false' /> 
      Title Changed<input type="checkbox" ng-model="Title" ng-bind-html="Title" ng-true-value="true" ng-false-value="false" ng-init='Title=false' ng-checked='false' />
    </div>
    <br/>
    <div>Released value is  <b>{{Released}}</b></div>
    <br/>
    <div>Inactivated  value is  <b>{{Inactivated}}</b></div>
    <br/>
    <div>Title  value is  <b>{{Title}}</b></div>
    <br/>
  </form>

// Code goes here

  var app = angular.module("myApp", []);
        app.controller("myCtrl", function ($scope) {

         });    
于 2017-04-10T19:16:51.447 回答
-1

在控制器中执行

$timeout(function(){
$scope.checked = true;
}, 1);

然后删除 ng-checked。

于 2020-10-13T20:13:37.780 回答