请注意这个例子:
<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的类型为boolean,但在选择值后,它将更改为string,而true不等于’true’.有什么方法可以让角度保留原始类型.
在这一点上,我正在考虑编写自己的指令来控制这种行为,但是看起来角度改变原始类型并不正确,我是否正确?
解决方法
使用ng-value和angular将处理转换回布尔值:
强制性代码:
<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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。