我有一个表格,如
HTML:
<form ng-submit="log(user)">
<input type="text" ng-model="user.firstname">
<input type="text" ng-model="user.lastname
</form>
角:
.controller ('', function ($scope){
$scope.log = function (user){
console.log (user.firstname)
}
})
这之前有效,但现在它抛出无法读取属性user.firstname
请帮帮我。谢谢
答案 0 :(得分:1)
AngualarJs富含双向数据绑定。您不需要在函数日志中传递范围对象用户。它在控制器中始终具有更新的值。只需将用户初始化为范围对象并尝试代码
在html中:
<form ng-submit="log()">
<input type="text" ng-model="user.firstname" />
<input type="text" ng-model="user.lastname" />
</form>
在Js
.controller ('', function ($scope){
$scope.user = {}; // Declare here
$scope.log = function (){
console.log ($scope.user.firstname);
}
})
答案 1 :(得分:0)
如果用户参数未定义,则无法访问未定义值的名字,您可以尝试使用以下代码段来解决问题。
.controller ('', function ($scope){
$scope.log = function (user){
if(user){ //Strict Check: toString.call(user) == "[object Object]"
console.log (user.firstname)
}
}
})
答案 2 :(得分:0)
这是完整的工作示例,与您的有点类似。
<div ng-app="myApp" ng-controller="myCtrl">
First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{firstName + " " + lastName}}
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
</script>
请试一试。
由于 阿米特
答案 3 :(得分:0)
删除以下代码
ng-submit="log(user)"
并删除按钮类型提交
并添加以下行
<input type="button" ng-click="log()"/>
你的js文件
$scope.log=function(){
console.log($scope.firstname);
console.log($scope.lastname);
}