不能定义的红色属性

时间:2016-08-11 08:54:09

标签: javascript angularjs ionic-framework

我在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”

4 个答案:

答案 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);
};

由于用户是一个对象,在使用之前没有定义,因此编译器无法为用户创建属性。