简体   繁体   中英

Uncaught TypeError: controller.setView is not a function in EXTJS

I want to redirect/popup the form when button is clicked i name the button handler as OnRoutesClick but i am getting some error

please help me to find out the error thank you in advance screenshot of error in browser

reportMenuController.js

Ext.define('Traccar.view.reportMenuController', {
    extend:'Ext.app.ViewController',
    alias:'controller.reportMenu',

requires:[
'Traccar.view.dialog.Server',
'Traccar.view.dialog.User',
'Traccar.view.dialog.reportBox'
],

onRoutesClick: function () {
        var dialog = Ext.create('Traccar.view.dialog.reportBox', {
            selfEdit: true
        });
        dialog.down('form').loadRecord(Traccar.app.getUser());
        dialog.lookupReference('testNotificationButton').setHidden(false);
        dialog.show();
    },

reportBox.js

Ext.define('Traccar.view.dialog.reportBox', {
    extend:'Traccar.view.dialog.BaseEdit',

requires: [
'Traccar.view.ClearableComboBox',
'Traccar.view.dialog.reportBoxController',
'Traccar.view.UnescapedTextField'
],

controller:'reportBox',
title:'Report',
text:'Report',


items:{
    xtype:'form',
   items: [{
    xtype:'fieldset',
    title:Strings.sharedRequired,
    items:[{
        xtype:'unescapedTextField',
        fieldLabel:'name'
    }]
   }]
}
});

Error in the browser

Uncaught TypeError: controller.setView is not a function
    at constructor.applyController (ext-all-debug.js:53043)
    at constructor.setter [as setController] (ext-all-debug.js:10545)
    at Ext.Configurator.configure (ext-all-debug.js:11134)
    at constructor.initConfig (ext-all-debug.js:12643)
    at constructor (ext-all-debug.js:66310)
    at new constructor (ext-all-debug.js:13136)
    at eval (eval at getInstantiator (ext-all-debug.js:15045), <anonymous>:3:8)
    at Object.create (ext-all-debug.js:15489)
    at constructor.onRoutesClick (reportMenuController.js:50)
    at Object.callback (ext-all-debug.js:8705)
  1. In view, against the controller key, controller alias name should be mentioned. So, as your alias is 'reportMenu', you have to mention the same.
Ext.define('Traccar.view.dialog.reportBox', {
    extend:'Traccar.view.dialog.BaseEdit',

requires: [
'Traccar.view.ClearableComboBox',
'Traccar.view.dialog.reportBoxController',
'Traccar.view.UnescapedTextField'
],

controller:'reportMenu',
title:'Report',
text:'Report',


items:{
    xtype:'form',
   items: [{
    xtype:'fieldset',
    title:Strings.sharedRequired,
    items:[{
        xtype:'unescapedTextField',
        fieldLabel:'name'
    }]
   }]
}
});
  1. Your controller should be in same folder as that of view, at same level.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM