在另一个c#项目中引用ext.js存储

时间:2014-07-11 13:45:09

标签: c# javascript extjs

我想创建一个可以跨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 /商店下查看,我想知道是否需要更改文件夹布局以符合我的命名约定。

2 个答案:

答案 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。