Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 两个模型之间的extjs5关联_Javascript_Extjs_Extjs5 - Fatal编程技术网

Javascript 两个模型之间的extjs5关联

Javascript 两个模型之间的extjs5关联,javascript,extjs,extjs5,Javascript,Extjs,Extjs5,有两个模型和连接的商店:前端的用户和订单。后端有两个api调用:getOrderId和getOrders。 在“订单存储”中,我为getOrders指定了代理设置。在“订单模型”中,我为GetOrderID指定了代理。 当我调用用户的load方法来获取关联订单时,在本例中使用模型的代理。为什么不使用存储中的代理?为什么它没有使用 注意:用户和订单之间的关系在后端描述,取决于用户的身份验证参数 用户模型代码 Ext.define'Dev.models.User'{ 扩展:“Ext.data.Mod

有两个模型和连接的商店:前端的用户和订单。后端有两个api调用:getOrderId和getOrders。 在“订单存储”中,我为getOrders指定了代理设置。在“订单模型”中,我为GetOrderID指定了代理。 当我调用用户的load方法来获取关联订单时,在本例中使用模型的代理。为什么不使用存储中的代理?为什么它没有使用

注意:用户和订单之间的关系在后端描述,取决于用户的身份验证参数

用户模型代码

Ext.define'Dev.models.User'{ 扩展:“Ext.data.Model”, 需要:['Dev.stores.Orders'], 字段:[ //资料 {name:name,type:string}, {name:userId,type:string} ], 代理:{ 键入:“ajax”, url:“/tcc/getmember”, idParam:'memberId', 读者:{ 键入:“json”, idProperty:'memberId' } }, 有很多:{ 模型:“Dev.models.Order”, 名称:'订单', storeConfig:{ 键入:“订单”, 过滤器:[] } } }; 订单型号代码

Ext.define'Dev.models.Order'{ 扩展:“Ext.data.Model”, idProperty:'orderId', 字段:[ {name:orderId,type:string}, {name:title,type:string}, {name:createMember,类型:string} ], 代理:{ 键入:“ajax”, api:{ 创建:'/tcc/setorder', 阅读:“/tcc/getorder”, 更新:'/tcc/setorder',, 销毁:'/tcc/deleteorder' }, idParam:'orderId', 读者:{ 键入:“json”, idProperty:“orderId” } }, 以下内容:{ 模型:Dev.models.User, 名称:“用户”, getterName:'getUser', foreignKey:'userId', primaryKey:“createMember” } }; 订单存储代码

Ext.define'Dev.stores.Orders'{ 扩展:“Ext.data.Store”, 模型:“Dev.models.Order”, 别名:“store.orders”, 代理:{ 键入:“ajax”, api:{ 创建:'/tcc/setorder', 阅读:“/tcc/getorders”, 更新:'/tcc/setorder',, 销毁:'/tcc/deleteorder' }, 读者:{ 根:'命令', 键入:“json”, idProperty:“orderId” } } }; 用法示例

函数domenberonueserid{ Dev.models.User.loaduserId{ 成功:功能记录、操作{ console.logUser模型加载成功; 订单; }, 故障:功能记录、操作{ console.logUser模型加载失败; } }; } 功能门存储{ orderStore.load{ 回调:函数记录、操作、成功{ 如果成功{ 已成功加载console.logOrders; }否则{ console.LogoOrders加载失败; } } }; } Ext.onReadyfunction{ Dev.Authentication.loginadmin、adminpass、adminorg; Dev.Authentication.on'login',functionresp{ console.logLogin成功。; domenberoneresp.accountid; }; };
你怎么知道它不起作用?我已经尝试在中复制您的测试用例,它正在按预期工作。。。实际上,使用的是storeConfig的存储中配置的代理,而不是模型的默认代理。我不能在我的代码中做同样的事情,请参见上面的PS部分。我没有用于连接此模型的任何字段。在ExtJS4.2中我可以做到。字段选项不相关;我已经将其从中移除,但我仍然观察到相同的结果。也就是说,用于加载关系的代理(正如预期的那样)是storeConfig选项中存储的代理。这让我回到了我最初的问题:你怎么知道它不起作用?或者更好的是,你能用小提琴来演示你的问题吗?如果你的代码就是被破坏的代码,那么用户模型中字段属性定义末尾缺少的}可能是错误的,不过我不确定,我只是看到了遗漏并更正了它。