2011-08-22 20 views

Odpowiedz

11

Jeśli zainstalowano moduł Orchard.jQuery i włączone, a następnie na szczycie korzystania Widok:

Script.Require("jQuery") 

spojrzeć na klasy ResourceManifest w projekcie Orchard.jQuery (powinien być gdzieś w plik rozwiązania Orchard), tam możesz zobaczyć wszystkie różne moduły jQuery, które możesz dołączyć, używając tej składni (np. jQueryUI_Core, jQueryUI_Tabs, itp.)

Np

manifest.DefineScript("jQueryUI").SetUrl("jquery-ui.min.js", "jquery-ui.js").SetVersion("1.9.2").SetDependencies("jQuery") 
       .SetCdn("//ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.min.js", "//ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.js", true); 
27

Możesz to zrobić dwojako.

Pierwsze podejście jest jak MDM opisane:

  1. tworzyć własne wdrożenie IResourceManifestProvider interfejs (spojrzeć na źródła Orchard - to zostało wdrożone w wielu modułów), wdrażania BuildManifests(ResourceManifestBuilder builder) metody i utworzyć nazwany zasób dla danego pliku .js
  2. Użyj @{ Script.Require("[your resource name]"); } w pliku widoku maszynki Razor (.cshtml), aby dołączyć ten skrypt.

Jest to preferowane rozwiązanie, jeśli istnieje wiele plików skryptów, prawdopodobnie z zależnościami między nimi. Pozwala ci to określić zależności dla każdego pliku skryptu i sprawić, by Orchard zajął się resztą (więc gdy odniesiesz się do danego zasobu, wszystkie zależne będą również automatycznie przywoływane we właściwej kolejności).

Drugie, prostsze podejście: to bezpośrednie odniesienie do pliku skryptu .js w pliku .cshtml, bez tworzenia nazwanego zasobu. Przydaje się, jeśli chcesz szybko dodać odniesienie do pojedynczego skryptu. Tak (przykład pobranych z Orchard.Web \ Rdzenia \ kształtów \ Wyświetleń \ Document.cshtml):

@{ Script.Include("html5.js").AtLocation(ResourceLocation.Head); } 
+0

można zobaczyć Dobrym przykładem ** \ Orchard.Web \ Modules \ Orchard.Tags \ ResourceManifest.cs **, w którym definiuje zarówno styl i skrypt. – VitalyB

+0

Jak zrobiłbyś to, jeśli strona została utworzona za pomocą funkcji administratora Orchard CMS? W takim przypadku nie ma pliku widoku brzytwy (czy istnieje)? – spadelives

1

to trochę oszustwo, ale można po prostu dodać do pliku arkusza lub dokumentu.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script> 

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js" type="text/javascript"></script> 
+4

oszukiwanie tak, ale najlepiej zrobić to poprzez 'Script.Include (" ");' jak Orchard załaduje tylko jeden, jeśli wiele odwołuje się poprzez różne widoki. –

+0

Możesz napotkać problemy podczas robienia tego typu rzeczy. Załóżmy na przykład, że twoje środowisko testowe nie ma dostępu do internetu. Naprawdę powinieneś mieć wszystko, czego potrzebujesz w swoim rozwiązaniu. –

0

Aby dobrze przejrzeć przykład modułu ContentPicker. Jest to dostarczane z domyślnym kodem źródłowym Orchard. Pokazuje, jak można użyć Script.Require ("MyScript"). Sam moduł JQuery jest dobrym przykładem. Ten moduł jest dostarczany z domyślnym kodem źródłowym.

Uwaga: Mam na myśli Orchard 1.7 i nowszych wersjach

Powiązane problemy