我想创建一个可以跨c#项目共享的ext.js商店。我在Scripts / Store / Hierarchies.js下的Services项目中定义了我的商店。该商店名为NCS.store.Hierarchies。
Ext.define('NCS.store.Hierarchies', {
requires: [
'Ext.data.proxy.Proxy',
'Ext.data.Operation',
'Ext.data.reader.Json',
'NCS.store.SelectedHierarchies'
],
在另一个c#项目中,我现在想引用这个商店 -
Ext.widget({
id: 'hierarchyPanel',
xtype: 'panel',
border: true,
frame: true,
title: 'Hierarchy Selector',
layout: {
type: 'hbox',
pack: 'start',
align: 'stretch'
},
collapsible: true,
items: NCS.store.Hierarchies.getComboArray().concat(
Ext.create('Ext.Button', {
id: 'hierarchyClear',
text: 'Clear'
})),
renderTo: this.constants.hierarchiesId,
listeners: {
show: {
fn: function (t, o) {
t.doLayout();
}
}
}
});
如何正确引用此商店?目前我收到一个未找到的错误(它正在查看当前的c#项目网址而不是实际包含商店的网址)。
> GET
> http://localhost/Orchard/NCS.Reporting.PODS/NCS/store/Hierarchies.js?_dc=1405085182757
> 404 (Not Found)
我认为它应该看起来
http://localhost/Orchard/NCS.Services.PODS/NCS/store/Hierarchies.js?_dc=1405085182757
此外,由于它正在NCS /商店下查看,我想知道是否需要更改文件夹布局以符合我的命名约定。
答案 0 :(得分:0)
我会考虑将存储脚本的文件夹映射为IIS中的虚拟目录,以便Web服务器可以响应Web请求来为它们提供服务。
答案 1 :(得分:0)
您可以使用ExtJs Loader对象 -
// load up all of our dependencies
Ext.Loader.setConfig({
enabled: true,
paths: {
'NCS': Config.RootUrl + 'Modules/NCS.Services.PODS/Scripts'
}
});
我需要指定在哪里为ExtJS找到NCS以找到正确的文件。现在我已经加载了NCS路径,我可以使用上面的代码来引用NCS.store.Hierarchies。