默认情况下在加载时选中Angularjs复选框并禁用选中时选择列表

问题描述 投票:43回答:3

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

<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/

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

谢谢您的帮助!

angularjs checkbox selectlist
3个回答
92
投票

如果使用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>

3
投票

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

控制器:

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

形成

<input ng-model="vm.question.active" type="checkbox" id="active" name="active">

0
投票

你真的不需要这个指令,可以通过使用ng-init和ng-checked实现它。下面的demo链接显示了如何在angularjs中设置checkbox的初始值。

demo link

<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) {

         });    
© www.soinside.com 2019 - 2024. All rights reserved.