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

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

<!DOCTYPE html>

<html 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>


凤凰求蛊
浏览 921回答 1
1回答

函数式编程

打不出来东西就对了,你的代码没有让angular输出任何东西。controller中代码的执行,先声明一个空对象p,然后给p上加了个sex属性并输出,并没有给sex赋值,所以没有值是对的。就你目前的代码,页面上的单选钮应该没有选中的吧?你需要先在controller中对sex赋值才行,页面上就能选中,之后也能输出结果。<input&nbsp;ng-model="p.sex"&nbsp;name="sex"&nbsp;ng-value="1"&nbsp;type="radio">先生 <input&nbsp;ng-model="p.sex"&nbsp;name="sex"&nbsp;ng-value="2"&nbsp;type="radio">女士
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript