2016-08-11 8 views
0

내 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: Cannot read property 'fname' of undefined

+0

'$ scope'이 (가) 무엇입니까? $ scope가 사용자 인 경우 ng-model = "fname"이 아닐 수도 있습니다. 문제는 사용자가 정의되지 않았습니다. –

답변

0

당신은에 undefined

인 객체에 속성을 설정하는 점점 계속 사용자를 초기화해야합니다.

$scope.user = {}; 
1

먼저 컨트롤러에 $scope.user = {};을 정의하십시오.

ngClick 콜백에 매개 변수로 user을 전달할 필요가 없습니다. user 변수가 범위에 정의되어 있으므로 매개 변수로 전달할 이유가 없습니다.

콜백에 $scope.user 만 사용하면됩니다.

0

Angular는 컨트롤러에서 자동으로 원시 값을 만들 수 있지만 객체 나 배열을 좋아하는 복잡한 유형은 만들 수 없습니다. 바인딩에서 사용하기 전에 컨트롤러에서 자신을 초기화해야합니다.

0

사용자를 객체로 미리 정의 해보십시오.

$scope.user = {}; 

$scope.updateData = function(user) { 
    console.log (user.fname); 
}; 

사용자는 개체이므로 사용하기 전에 정의되어 있지 않으므로 컴파일러는 사용자 속성을 만들 수 없습니다.

관련 문제