首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Uncaught : controller.setView不是EXTJS中的函数

Uncaught : controller.setView不是EXTJS中的函数
EN

Stack Overflow用户
提问于 2019-06-19 09:37:18
回答 1查看 552关注 0票数 0

当单击按钮时,我想重定向/弹出表单,我将按钮处理程序命名为OnRoutesClick,但我收到了一些错误

请帮我找出错误,谢谢你提前浏览器错误截图

reportMenuController.js

代码语言:javascript
复制
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

代码语言:javascript
复制
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'
    }]
   }]
}
});

浏览器中的错误

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2019-06-19 14:37:02

  1. 考虑到,针对控制器密钥,应该提到控制器别名。因此,由于您的别名是“reportMenu”,因此您必须提到相同的内容。
代码语言:javascript
复制
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. 您的控制器应该在与视图相同的文件夹中,处于相同的级别。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56664583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档