gpt4 book ai didi

javascript - 将静态属性值传递给 ExtJS 中的类定义时,无法读取未定义的属性

转载 作者:行者123 更新时间:2023-12-02 17:43:08 25 4
gpt4 key购买 nike

我想知道是否有人可以为我在 ExtJS 4 中遇到的特殊问题提供一些帮助。我定义了一个存储,它采用我在“读取”和“创建”中指定的一些值来自类的代理中 api 对象的属性,其中这些值在类的静态部分中定义。但是,当我运行该应用程序时,我不断收到错误:

**未捕获类型错误:无法读取未定义的属性“Url”**。

这里是商店

Ext.define('MyApp.store.address.AddressStore',
{
extend: 'Ext.data.Store',
model: 'MyApp.model.address.AddressModel',
requires: ['MyApp.props.Url'],
proxy: {
type: 'ajax',
api: {
create: MyApp.props.Url.Address.ADD_ADDRESS_URL, //This is defined in the static class below
read: MyApp.props.Url.Address.GET_ALL_ADDRESSES_URL //As is this

},
reader: {
type: 'json',
root: 'Addresses'
}
}
}

);

这里是定义静态属性MyApp.props.Url的类

Ext.define('MyApp.props.Url', {
statics: {
Address: {
ADD_ADDRESS_URL: 'Address/AddAddress',
GET_ALL_ADDRESSES_URL: 'Address/GetAllAddresses',
GET_ALL_ADDRESS_TYPES_URL: 'Address/GetAllAddressTypes'
}
}

});

最佳答案

考虑代码的求值顺序。在这种情况下,您实质上是在说:

Ext.define('MyClassName', o);

只有在解析整个对象后,类定义才会传递给 define。这意味着只有在我们进入 define 调用后才会处理需求。

您需要执行以下操作:

Ext.require('MyApp.props.Url', function() {
console.log(MyApp.props.Url.Address.ADD_ADDRESS_URL);
Ext.define('MyClass', {});
});

关于javascript - 将静态属性值传递给 ExtJS 中的类定义时,无法读取未定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22023615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com