Quantcast
Channel: Ionic Forum - Latest topics
Viewing all articles
Browse latest Browse all 71531

Util Events: Cannot set property 'events' of undefined

$
0
0

@tbergeron wrote:

Hi! I've been using Events for a while but in the past week I started to get this critical error in the browser console when using them. As soon as I .publish() a new event I get these errors:

Runtime Error
Uncaught (in promise): TypeError: Cannot set property 'events' of undefined TypeError: Cannot set property 'events' of undefined at MyApp (http://localhost:8100/build/main.js:1283:21) at AppModuleInjector.get (ng:///AppModule/module.ngfactory.js:266:71) at AppModuleInjector.getInternal (ng:///AppModule/module.ngfactory.js:432:54) at AppModuleInjector.NgModuleInjector.get (http://localhost:8100/build/vendor.js:4084:44) at resolveDep (http://localhost:8100/build/vendor.js:11546:45) at createClass (http://localhost:8100/build/vendor.js:11405:147) at _createProviderInstance (http://localhost:8100/build/vendor.js:11369:26) at Object.resolveDep (http://localhost:8100/build/vendor.js:11526:53) at Injector_.get (http://localhost:8100/build/vendor.js:10850:25) at ReflectiveInjector_._getByKeyDefault (http://localhost:8100/build/vendor.js:3313:24)
Stack
Error: Uncaught (in promise): TypeError: Cannot set property 'events' of undefined
TypeError: Cannot set property 'events' of undefined
    at MyApp (http://localhost:8100/build/main.js:1283:21)
    at AppModuleInjector.get (ng:///AppModule/module.ngfactory.js:266:71)
    at AppModuleInjector.getInternal (ng:///AppModule/module.ngfactory.js:432:54)
    at AppModuleInjector.NgModuleInjector.get (http://localhost:8100/build/vendor.js:4084:44)
    at resolveDep (http://localhost:8100/build/vendor.js:11546:45)
    at createClass (http://localhost:8100/build/vendor.js:11405:147)
    at _createProviderInstance (http://localhost:8100/build/vendor.js:11369:26)
    at Object.resolveDep (http://localhost:8100/build/vendor.js:11526:53)
    at Injector_.get (http://localhost:8100/build/vendor.js:10850:25)
    at ReflectiveInjector_._getByKeyDefault (http://localhost:8100/build/vendor.js:3313:24)
    at c (http://localhost:8100/build/polyfills.js:3:13190)
    at Object.reject (http://localhost:8100/build/polyfills.js:3:12546)
    at NavControllerBase._fireError (http://localhost:8100/build/vendor.js:46340:16)
    at NavControllerBase._failed (http://localhost:8100/build/vendor.js:46328:14)
    at http://localhost:8100/build/vendor.js:46383:59
    at t.invoke (http://localhost:8100/build/polyfills.js:3:8971)
    at Object.onInvoke (http://localhost:8100/build/vendor.js:4656:37)
    at t.invoke (http://localhost:8100/build/polyfills.js:3:8911)
    at r.run (http://localhost:8100/build/polyfills.js:3:4140)
    at http://localhost:8100/build/polyfills.js:3:13731

Ionic Framework: 3.5.0
Ionic App Scripts: 2.0.1
Angular Core: 4.1.3
Angular Compiler CLI: 4.1.3
Node: 8.1.3
OS Platform: Windows 10
Navigator Platform: Win32
User Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1

Here's some code of how I use it:

import { Component } from '@angular/core';
import {
  IonicPage,
  Events
} from 'ionic-angular';
import { UserService } from '../../providers/user-service';

@IonicPage()
@Component({
  selector: 'page-sign-in',
  templateUrl: 'sign-in.html'
})

export class SignInPage {
  username: any;
  password: any;

  constructor(
    public toastCtrl: ToastController,
    public events: Events,
    public userService: UserService
  ) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad SignInPage');
  }

  submit(event) {
    if ((this.username) && (this.password)) {
      this.userService.authenticate(this.username, this.password).subscribe((data: any) => {
        if (data.token) {
          // preparing authData
          this.userService.authData = {
            userId: data.userId,
            username: data.username,
            token: data.token
          }
          this.events.publish('user:login'); // TRIGGERS THE ERROR
        } else {
          alert('Invalid username and/or password!');
        }
      });
    } else {
      alert('Fill username & password fields first!');
    }
    event.stopPropagation();
  }
}

I don't try to set anything anywhere I'm just publishing an event. this.events isn't even null:

It looks like it might be a bug to me but I want to ask here before opening an issue on GitHub. Anyone has an idea of what's going on here?

Thanks!

Posts: 3

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 71531

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>