具有不同 poxy url 的 ExtJs4 模型

发布于 2024-12-29 19:36:26 字数 1275 浏览 2 评论 0原文

我已经定义了一个模型,我想使用两次,但在代理中使用不同的 url(实际上只有 id 不同)但是我该如何管理这个呢?

Ext.define('TesterModel', {
extend: 'Ext.data.Model',
autoLoad: false,
fields: [
    { name: 'prename', type: 'string' },
    { name: 'lastname', type: 'string' },
    { name: 'dept', type: 'string' },
    { name: 'rackName', type: 'string' },
    { name: 'rackIP' , vtype:'IPAddress'}],
proxy: {
    type: 'ajax',
    url: 'php/getData_db.php?id=',
    reader: {
        type: 'json',
        messageProperty: 'message',
        root: 'data',
    }
},
constructor: function() {
    UrlParams=document.URL.split("?");
    if(UrlParams.length > 1) {
        SingleUrlParams=Ext.Object.fromQueryString(UrlParams[1]);
        this.proxy.url = this.proxy.url + SingleUrlParams.right;
        console.log(this.proxy.url);
        }
    return this;
}});


Ext.ModelMgr.getModel('TesterModel').load(0, { // load user with ID of "0"
success: function(tester) {
    var rightPanel=Ext.getCmp('rightTester');
    rightPanel.loadRecord(tester); // when tester is loaded successfully, load the data into the form
}

});

我以为构造函数会在加载之前完成,但不,它是在加载之后完成的。这对我来说很奇怪。 有什么提示吗?

(主要网址如下: .../index.html?left=xx&right=yy ) 所以我想用一个 id 填充左侧的面板,并用第一个 id 填充右侧窗口一侧的面板。

谢谢!

I have defined a model which I want to use twice but with a different url int he proxy (in fact only the id differs) But how can I manage this?

Ext.define('TesterModel', {
extend: 'Ext.data.Model',
autoLoad: false,
fields: [
    { name: 'prename', type: 'string' },
    { name: 'lastname', type: 'string' },
    { name: 'dept', type: 'string' },
    { name: 'rackName', type: 'string' },
    { name: 'rackIP' , vtype:'IPAddress'}],
proxy: {
    type: 'ajax',
    url: 'php/getData_db.php?id=',
    reader: {
        type: 'json',
        messageProperty: 'message',
        root: 'data',
    }
},
constructor: function() {
    UrlParams=document.URL.split("?");
    if(UrlParams.length > 1) {
        SingleUrlParams=Ext.Object.fromQueryString(UrlParams[1]);
        this.proxy.url = this.proxy.url + SingleUrlParams.right;
        console.log(this.proxy.url);
        }
    return this;
}});


Ext.ModelMgr.getModel('TesterModel').load(0, { // load user with ID of "0"
success: function(tester) {
    var rightPanel=Ext.getCmp('rightTester');
    rightPanel.loadRecord(tester); // when tester is loaded successfully, load the data into the form
}

});

I thought that the constructor will be done before loading, but nope, it is done after. It's weired to me.
Any hints, please?

(the main URL it's like: .../index.html?left=xx&right=yy )
so I want to fill up a panel on the left with the one id, and a panel on the right window side eith th right id.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倾城月光淡如水﹏ 2025-01-05 19:36:26

尝试 .getProxy().url = "what/ever.php"

Try .getProxy().url = "what/ever.php"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文