我在html视图中有这个。
<form name="adduser" id="signupForm" novalidate>
<span>First Name</span>
<label class="item item-input" id="profileLabel">
<input id="profileInput" type="text"
ng-model="user.fname"
class="form-control"
placeholder="{{fnamePlaceholder}}"
ng-minlength="1" >
</label>
<div id="name-group" class="form-group-lg">
<button type="submit" ng-click="updateData(user)" id="initiateSignUp" class=" button button-positive button-block" >
Save and continue
</button>
</div>
</form>
这是我的控制器的开始
$scope.updateData=function(user){
console.log (user.fname)
}
但我一直在
TypeError:无法读取未定义的属性“fname”
答案 0 :(得分:1)
首先,在控制器中定义$scope.user = {};
。
您不必将user
作为参数传递给ngClick
回调。 user
变量是在作用域上定义的,因此没有理由将其作为参数传递。
只需在回调中使用$scope.user
。
答案 1 :(得分:0)
您正在undefined
在开始时您需要初始化用户。
$scope.user = {};
答案 2 :(得分:0)
虽然Angular可以自动为您的控制器创建原始值,但它无法创建复杂类型,如对象或数组。在尝试在绑定中使用它们之前,您需要在控制器中自己初始化它们
答案 3 :(得分:0)
尝试将用户定义为对象。
$scope.user = {};
$scope.updateData = function(user) {
console.log (user.fname);
};
由于用户是一个对象,在使用之前没有定义,因此编译器无法为用户创建属性。