javascript - angularjs用ng-model绑定了页面数据(此数据为对象)后,为什么不能打印出来?
天蓬老师
天蓬老师 2017-04-11 10:02:49
[JavaScript讨论组]

我在模块中定义了一个对象,然后用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>
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
PHP中文网

打不出来东西就对了,你的代码没有让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">女士
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号