我试图在页面加载时立即将复选框设置为“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>
最佳方法西蒙
答案 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>
答案 1 :(得分:1)
使用ng-model
定义属性时,Angular将开始在$scope
中查找属性值。如果该属性不存在,那么它将是undefined
。
在你的情况下,因为你没有在变量check
之前初始化它的值是'未定义'。
角度插值服务非常智能,在评估表达式时不会显示未定义。
这就是您在{{check}}
中看不到任何输出的原因。
解决此问题的一个选择:
在控制器中设置check
的初始值。
$scope.check = 'true';
您认为:
ng-init="check = 'true'";