1
votes

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

1
datateman is not defined when your run simpan. I don't see simpan being called from anywhere though? - Robin-Hoodie

1 Answers

3
votes

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"
        });