如何为模型分配布尔值

时间:2013-07-17 14:04:24

标签: angularjs

我有以下视图,带有两个输入单选按钮:

<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; };

选择单选按钮时仍会产生字符串...

1 个答案:

答案 0 :(得分:66)

the documentation中的一条评论说:

  

虽然未记录ng-value,但它是一个有用的指令,特别是当您绑定到布尔值时。

<input ng-model="foo" type="radio" value="true"> 
  

可能不起作用,但

<input ng-model="foo" ng-value="true" type="radio"> 
  

确实