angularjs用ng-model绑定了页面数据(此数据为对象)后,为什么不能打印出来?

我在模块中定义了一个对象,然后用ng-model绑定页面数据,但是用console.log无法打印出对象的某一个值,请问怎么解决呢?代码如下:

<!DOCTYPE html>
<html lang="en" ng-app="my1">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body ng-controller="ctrl">
联系人:<input  ng-model="p.name" type="text">
<input ng-model="p.sex" ng-value="1" ng-change="click()" type="radio">先生
<input ng-model="p.sex" ng-value="2" ng-change="click()" type="radio">女士

<script src="js/angular.js"></script>
<script>
  angular.module('my1',['ng']).controller('ctrl',function ($scope) {
    $scope.p={
        sex:"1" //默认选中先生
    };
    console.log($scope.p.sex); //输出当前的性别值,controller初始化的时候执行一次,切换的时候并不执行
    
    $scope.click = function(){ //切换性别的时候执行这个方法
        console.log($scope.p.sex);
    }
  })
</script>
</body>
</html>
阅读 5.6k
2 个回答

打不出来东西就对了,你的代码没有让angular输出任何东西。
controller中代码的执行,先声明一个空对象p,然后给p上加了个sex属性并输出,并没有给sex赋值,所以没有值是对的。就你目前的代码,页面上的单选钮应该没有选中的吧?
你需要先在controller中对sex赋值才行,页面上就能选中,之后也能输出结果。

<input ng-model="p.sex" name="sex" ng-value="1" type="radio">先生
<input ng-model="p.sex" name="sex" ng-value="2" type="radio">女士
新手上路,请多包涵

最近弄了好久angularjs打印方面的问题
打印的页面用ng-model绑定值的话是打印不出来的
预览的时候都没有值
<input type="text" value="{{xxx}}" ng-model="xxx">
这样可以打印出来
在我的项目里
同时有 value 和 ng-model 是没有什么影响的
可以照这种方式试一试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题