Angularjs - 处理复选框值

时间:2015-03-19 09:32:56

标签: html angularjs

我试图在页面加载时立即将复选框设置为“true”(并且它工作正常)但是一旦页面加载,该值就是“空”。 如果我点击复选框,它会开始说“真和假”。

我在这做错了什么? http://jsfiddle.net/WTN4p/13/

<div ng-app>
<div >
    <input type="checkbox" ng-checked="true" ng-true-value="true" ng-false-value="false" ng-model="check"/>        
</div>


check is: {{ check }}

<div ng-show="check == 'true'">
    Checked
</div>

最佳方法西蒙

2 个答案:

答案 0 :(得分:1)

您需要定义check的初始值/状态。

您可以在控制器内执行此操作:

$scope.check = 'true';

使用现有设置,您可以在视图中使用ng-init

<div ng-init="check = 'true'">
    <input type="checkbox" ng-checked="true" ng-true-value="true" ng-false-value="false" ng-model="check"/>      
</div>

http://jsfiddle.net/ff23a4at/1/

答案 1 :(得分:1)

使用ng-model定义属性时,Angular将开始在$scope中查找属性值。如果该属性不存在,那么它将是undefined

在你的情况下,因为你没有在变量check之前初始化它的值是'未定义'。

角度插值服务非常智能,在评估表达式时不会显示未定义。

这就是您在{{check}}中看不到任何输出的原因。

解决此问题的一个选择:

在控制器中设置check的初始值。

$scope.check = 'true';

您认为:

ng-init="check = 'true'";