Borom1r Borom1r - 3 months ago 36
AngularJS Question

TypeError: Cannot read property 'userid' of undefined

i got error "TypeError: Cannot read property 'userid' of undefined"

this is my controller

.controller('tambahTemanCtrl',function($scope,$ionicPopup,temanService){
$scope.showAlert = function(msg) {
$ionicPopup.alert({
title: msg.title,
template: msg.message,
okText: 'Ok',
okType: 'button-positive'

});
};

$scope.simpan = function (){
if (!$scope.datateman.userid){
$scope.showAlert({
title: "Information",
message: "UserID cant be blank"
});
else{
var data = {
Userid: $scope.datateman.userid,
Address: $scope.datateman.address,
Employeeid: $scope.datateman.employeeid,
Email: $scope.datateman.email,
Phoneno: $scope.datateman.phoneno,
Password: $scope.datateman.password,
Division: $scope.datateman.division,
Leavebalance: $scope.datateman.leavebalance
};
var dataCollection = [];
for(var item in data){
if(data.hasOwnProperty(item)){
dataCollection.push(data[item]);
}
}
var DTO = {
Value: dataCollection.join('|')
};
//do not use success. its obsolete
temanService.create(DTO).then(function(response){
},function(response){
//error
});
}

};

});


this is my html

<ion-header-bar class="bar-positive">
<h1 class="title">Add User</h1>
</ion-header-bar>
<ion-content class="padding">
<form>
<ion-list>
<label class="item item-input">
<input type="text" ng-model="datateman.userid" placeholder="UserID">
</label>
<label class="item item-input">
<input type="text" ng-model="datateman.fullname" placeholder="Fullname">
</label>
<label class="item item-input">
<input type="text" ng-model="datateman.password" placeholder="Password">
</label>
</ion-list>
<div class="spacer" style="height: 5px;"></div>
<button class="button icon ion-person-stalker button-balanced button- block" ng-click="simpan();"> Save</button>
</form>
</ion-content>


its happen when i run the code.
i am using ionic framework and visual studio code.
can you tell me whats wrong ive been made ?
thx for your help

Answer

You should first initialize your datateman object before checking the validity of its properties. Like this:

$scope.datateman = {};

$scope.simpan = function (){

//the interpreter looks for 'datateman' object in order to check for 'userid' existence
    if (!$scope.datateman.userid){ 
        $scope.showAlert({
            title: "Information",
            message: "UserID cant be blank"
        });
Comments