javascript - 单选按钮中的 ng-model 类型更改

标签 javascript angularjs angularjs-directive radio-button

请注意这个例子:

JSFiddle Sample



    <div ng-controller="myCtrl">
    var ng-model = {{myValue}} - {{myType}}

       <input type="radio" value="true" 
    name="boolean" ng-change="logIt()" ng-model="myValue" /> True
        <input type="radio" value="false" 
    name="boolean" ng-change="logIt()" ng-model="myValue" /> False

    </div>
    var myApp = angular.module('myApp',[]);

    function myCtrl($scope)
    {    
        $scope.myValue = true; //does not work
        //$scope.myValue = 'true'; //it does work
        $scope.myType =(typeof $scope.myValue);    
        $scope.logIt=function(){
            $scope.myType =(typeof $scope.myValue);
        }
    }

如您所见,最初 typeof 是 bool 类型,但在选择一个值后它变为字符串,并且 true 不等于“true”。有什么办法可以使 Angular 保留原始类型。

在这一点上,我正在考虑编写自己的指令来控制这种行为,但是 Angular 改变原始类型看起来不正确,我说得对吗?

最佳答案

使用 ng-value 和 angular 将处理转换回 bool 值:

这是 updated jsfiddle .

和强制性代码:

<div ng-controller="myCtrl">
    <h1>Sample 1- Booleans</h1>

var ng-model = {{myValue}} - {{myType}}
    <br />
    <input type="radio" ng-value="true" name="boolean" ng-change="logIt()" ng-model="myValue" /> True
    <input type="radio" ng-value="false" name="boolean" ng-change="logIt()" ng-model="myValue" /> False 
</div>

关于javascript - 单选按钮中的 ng-model 类型更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20248833/

相关文章:

javascript - Angularjs 在 HTML 标签内绑定(bind) HTML 标签

javascript - 类型 'Ref<x>' 的参数不可分配给类型 'x' 的参数

javascript - 为什么我不能在 Object.create() 中使用属性描述符设置可写属性?

javascript - 用于快速路由的正确正则表达式语法是什么?

javascript - 安装Electron时如何解决ECONNRESET?

angularjs - ui.bootstrap-directive 与 uib-popover-html 不起作用

javascript - 如何使用 VueJS 获取 json Web API 的值

javascript - 引用动态创建的 ng-model

angularjs - 预检响应不成功

angularjs - 如何将AngularJS ui-grid单元格中的数字值格式化为两位小数?