标签: extjs

ExtJS ComboBox下拉宽度比输入框宽度宽?

有没有办法将ExtJS(版本4)ComboBox的下拉菜单的宽度设置为宽于实际输入框的宽度?

我有一个comboxbox,我希望大约200px,但我在结果下拉列表上分页,宽度甚至不足以显示所有分页栏的控件.

这是我创建组合的代码:

var add_combo = Ext.create('Ext.form.field.ComboBox', 
    {
        id              : 'gbl_add_combo',
        store           : Ext.create('Ext.data.Store',
        {
            remoteFilter : true,
            fields : ['gb_id', 'title'],
            proxy  : 
            {
                type        : 'ajax',
                url         : 'index.php/store/get_items',
                reader      : 
                {
                    type            : 'json',
                    root            : 'records',
                    totalProperty   : 'total',
                    successProperty : 'success'
                },
                actionMethods : 
                {
                    read    : 'POST',
                    create  : 'POST',
                    update  : 'POST',
                    destroy : 'POST'
                }
            }
        }),
        listConfig:
        {
            loadingText: 'Searching...',
            emptyText: 'No results found'
        },
        queryMode       : 'remote',
        hideLabel       : true, …
Run Code Online (Sandbox Code Playgroud)

javascript user-interface combobox extjs extjs4

20
推荐指数
2
解决办法
2万
查看次数

定义对象时的initComponent与构造函数

当我应该使用initComponent比较constructor

我一直在使用initComponent来扩展我的对象,但查看Ext.define的文档是使用构造函数来查看它们然后放置.有什么不同?

相比:

Ext.define('My.app.PanelPart2', {
    extend: 'My.app.Panel',
    constructor: function (config) {
        this.callSuper(arguments); // calls My.app.Panel's constructor
        //...
    }
});
Run Code Online (Sandbox Code Playgroud)

Ext.define('My.app.PanelPart2', {
    extend: 'My.app.Panel',
    initComponent: function (config) {
        Ext.apply(this, config);
        this.callParent(arguments);
    }
});
Run Code Online (Sandbox Code Playgroud)

我知道有些组件没有初始化(我正在看着你Ext.data.Store),这导致我只倾向于编写构造函数,因为这应该是通用的.

extjs extjs4

20
推荐指数
1
解决办法
2万
查看次数

Cordova和PhoneGap没有在Ubuntu 14.04上工作

我用npm安装了Cordova和PhoneGap:

sudo npm install -g cordova
sudo npm install -g phonegap
Run Code Online (Sandbox Code Playgroud)

但是,两者都返回相同的错误消息:

/usr/bin/env: node: No such file or directory
Run Code Online (Sandbox Code Playgroud)

ubuntu extjs node.js cordova

20
推荐指数
2
解决办法
1万
查看次数

在JavaScript中执行继承

虽然我知道你不能像在C#中那样执行继承,但我已经看到它在互联网上提到它有可能.如果使用普通的JavaScript代码是不可能的话那么可以使用Ext JS吗?如果可以的话怎么样?

javascript inheritance extjs prototypal-inheritance

19
推荐指数
1
解决办法
1万
查看次数

如何使用extJS发布json数据

对于extJS和json来说,我有点新手.使用extJS发布json数据最无痛的路径是什么?我并不真正对任何GUI功能感兴趣,只是使用框架发送一些示例数据.

html post json extjs

19
推荐指数
3
解决办法
5万
查看次数

Extjs在渲染字段后更改fieldLabel.更好的解决方案?

我研究了ExtJs如何在dom中呈现表单的字段.要在渲染字段后更改fieldLabel,我找到适当的dom元素并更改其innerHTML;

/**
* Modifies field's label afrer field is rendered.
*
* @param {object} field
*    Some object that directly or indirecty extends Ext.form.Field
* @param {String} label
*    New value for field's label.
*/
function setLabel(field,label){
    var el = field.el.dom.parentNode.parentNode;
    if( el.children[0].tagName.toLowerCase() === 'label' ) {
        el.children[0].innerHTML =label;
    }else if( el.parentNode.children[0].tagName.toLowerCase() === 'label' ){
    el.parentNode.children[0].innerHTML =label;
    }
    return setLabel; //just for fun
}

//EXAMPLE:
var win = new Ext.Window({
    height : 200,
    width : 300,
    layout : 'form',
    labelAlign …
Run Code Online (Sandbox Code Playgroud)

javascript extjs

19
推荐指数
5
解决办法
3万
查看次数

将ExtJS MVC控制器附加到DOM元素,而不是组件

有没有办法使用Ext.app.Controller control()方法,但传入DOM查询?我有一个包含标准链接的页面,并希望为它们添加一个单击处理程序,即使它们不是作为Ext Buttons创建的.

我试过了

Ext.define('app.controller.TabController', {
    extend: 'Ext.app.Controller',

    init: function() {
        console.log("init");
        this.control({
            'a': {
                click: this.changeTab
            }   
        });
    },

    changeTab: function() {
        alert("new tab!");
    }   
});
Run Code Online (Sandbox Code Playgroud)

但是点击链接不会触发警报.

有没有办法用this.control指定CSS选择器?或者它只适用于组件?

extjs extjs4 extjs-mvc

19
推荐指数
1
解决办法
9182
查看次数

extjs 4.1我什么时候在商店和模特上使用代理?

有两种方法可以在extjs 4.1中使用代理(在我的例子中是服务器代理),可以将它绑定到模型或将其绑定到商店.

我对这种用法感到有点困惑:将代理绑定到商店并将其与模型联系起来有什么区别?

人们会以某种方式使用哪种情况?

extjs extjs4.1

19
推荐指数
1
解决办法
6382
查看次数

ExtJs没有在ComboBox上触发select事件

我有一个ExtJs的问题combobox,考虑我有一个combobox有4个项目和select事件中的回调函数combobox.

当我要设置combobox所选值时setValue(),ExtJs不会触发select事件.

我该如何解决这个问题?

我应该自己解雇这个事件setValue()吗?

combobox extjs extjs4

19
推荐指数
1
解决办法
2万
查看次数

从ExtJS自动扫描配置文件

我从头开始创建ExtJS 6.2应用程序.我对这个框架很新,所以我可以使用脚手架的应用程序.

设计的应用程序应该具有单独的"插件"(在代码/包级别上)将完全分离.我们也有某种路由器,它会为每个视图名称(路径/控制器/模型/附加信息)注册一些信息.我希望它以类似于模板方法设计模式的方式工作.当我添加新的插件/模块时,我还添加了具有特定名称模式的文件 - 例如.ModuleACMEGlobalConf.我想要ExtJS应用程序(或组件/类 - 无论如何)以某种方式扫描整个类树以获取具有此类名称模式的文件,读取它们的内容然后放入我的路由器config/global namespace变量.

问题是 - 实现这一目标的最佳方法是什么?

更新:

我想要的结构:

MyAppFolder  
---Module1  
.....MyConfigGlobal1.js  
---Module2  
.....MyConfigGlobal2.js  
---  
---Router.js  -> I want this file to scan whole 'MyAppFolder' tree, find files with *ConfigGlobal*.js pattern, read them and store in global namespace  

MyConfigGl​​obal1.js

var config = { configProp1:  'test', configProp2:  'test2'}
Run Code Online (Sandbox Code Playgroud)

MyConfigGl​​obal2.js

var config = {configProp3: 'test3', configProp4: 'test4'}
Run Code Online (Sandbox Code Playgroud)

Router.js

var configsMap = EXT.SOMETHING.FIND.ME.CLASSES.FROM.TREE.WITH.NAME('*MyConfigGlobal*')
Run Code Online (Sandbox Code Playgroud)

我希望路由器加载所有东西(它可以在类级别,而不是文件级别) - 无论是一个类还是一百个.使用此解决方案,我不必更改Router.js - 只需在我正在创建的新模块中添加另一个配置类.所以没有必要重新测试以前的模块.

但如果我在路由器中有这样的东西:

var requiredConfigs = ['MyGlobalConfig1.js','MyGlobalConfig2.js']
Run Code Online (Sandbox Code Playgroud)

我即将在路由器中将此第三个文件/类添加到此列表中,这意味着该策略已损坏,我必须重新测试module1和module2,因为它们以某种方式对它们共同的代码进行了修改.

javascript extjs

19
推荐指数
1
解决办法
215
查看次数