2013-05-31 64 views
0

添加我的dojo模塊到用戶界面時遇到問題。它試圖在episerver/shell中進行訪問。 我已經添加了一個module.conifg;EPiServer 7:將dojo模塊添加到用戶界面時遇到問題

<module> 

    <assemblies> 
    <add assembly="Mobile.Web" /> 
    </assemblies> 

    <dojoModules> 
    <add name="MobileWeb" path="Scripts" /> 
    </dojoModules> 

</module> 

加我的道場模塊在~/ClientResources/js/KeyValueEditor.js, 評爲模塊declare('MobileWeb.js.KeyValueEditor', [widget, templatedMixin],在我的塊類型:

[ClientEditor(ClientEditingClass = "MobileWeb.js.KeyValueEditor")] 
public virtual string KeyValueCategoryData { get; set; } 

它工作的時候,但是當我改變了dojoModules - >添加name屬性MobileWeb,它不會再工作了。 任何人都知道這可能是什麼?

回答

1

它看起來像系統不知道在哪裏可以找到客戶資源。

dojoModules節點中的名稱是您的名稱空間的一種,路徑應該指向Dojo可以找到該名稱空間的資源/腳本的文件夾。此路徑與您的模塊根目錄相關。

據我所知,您可能希望將您的JavaScript文件放入ClientResources/js子文件夾中,並將您的樣式放入模塊目錄中的ClientResources/css子文件夾中。在這種情況下,你可以定義道場模塊是這樣的:

<dojoModules> 
    <add name="MobileWeb" path="ClientResources/js" /> 
</dojoModules> 

這意味着,系統將嘗試找到ClientResources/JS子資源在你的模塊目錄。在聲明小部件時,你應該遵循你的命名空間和文件夾結構。您可以在ClientResources/JS聲明你的widget/KeyValueEditor.js文件是這樣的:

define([ 
// your imports 
], 
function (/* imports */) { 
    return declare("MobileWeb.KeyValueEditor", [_Widget, /* … */ ], { 
     // implementation 
    }); 
}); 

然後當你在後端的C#代碼引用您的小工具,你可以使用MobileWeb.KeyValueEditor名。

你可以在sample add-on for EPiServer 7找到一些例子和源代碼。

相關問題