我有以下视图,带有两个输入单选按钮:
<label>
<input type="radio" name="test" ng-model="fooBar"
value="true" ng-change="logConsole()">
True
</label>
<label>
<input type="radio" name="test" ng-model="fooBar"
value="false" ng-change="logConsole()">
False
</label>
我的控制器看起来像:
//Initialization
$scope.fooBar = false;
$scope.logConsole = function () {
console.log("Value is : " + $scope.fooBar);
console.log("Type is : " + typeof $scope.fooBar); //Always displays 'string'
};
我的问题是,当用户选择任一单选按钮时,fooBar
模型的类型总是一个String,即值为String'true'或String'false' - 我希望类型是布尔值true或布尔值false。
如何将布尔值(从视图中)存储到模型中?
value
属性,我传递了一个返回布尔值true或false的函数,如下所示:
<input type="text" value="{{getBoolean('true')}}....>
$ scope.getBoolean = function(value){ if(value ==='true')返回true; 否则返回false; };
选择单选按钮时仍会产生字符串...
答案 0 :(得分:66)
the documentation中的一条评论说:
虽然未记录ng-value,但它是一个有用的指令,特别是当您绑定到布尔值时。
<input ng-model="foo" type="radio" value="true">
可能不起作用,但
<input ng-model="foo" ng-value="true" type="radio">
确实