scriptsharp & JQuery плягін: як забяспечыць дадатковыя метады ўбудовы

Я ствараю jQuery плягін з scriptsharp ... як я магу вызначыць дадатковыя метады і атрымання доступу да параметраў плагіна?

Наколькі я магу бачыць, ёсць толькі адзін метад, даступны і параметры не захоўваюцца з элементамі?

напрыклад Я хачу, каб мець магчымасць напісаць:

jQuery.Select ( "# myDiv") плягін() SomeMethod() ..;

у SomeMethod Я хачу, каб атрымаць доступ да MyPluginOptions ...

update: 3 nov 2011: as far as I can see, the only option I have now, is to define the method as follows:

public static jQueryObject MyPlugin(object methodOrOptions, object parm1, object parm2 )

ок, першы параметр, methodOrOptions непрыгожа, але, верагодна, адзіны спосаб, у сувязі з характарам JavaScript. але потым, я павінен паказаць, як шмат дадатковых аргументаў, як і любы дадатковы метад будзе неабходны. Гэта шкада, што я не магу выкарыстоўваць аб'ект Params [] тут. (<�Моцны> абнаўленне 4 лістапада: няма падтрымкі дадатковых параметраў, а таксама ...)

Тым не менш у цэлым карціна здаецца «не мае рацыю» для мяне, добра, з-за розніцы паміж C# і JavaScript, але, магчыма, scriptsharp кампілятар можа дапамагчы нам, каб пераадолець неадпаведнасць ...

0

1 адказы

Вы праверылі ўзоры? Калі я правільна разумею ваша пытанне гэта амаль усё пакрыта ...

https://github.com/nikhilk/scriptsharp/tree/master/samples/PhotoGrid/Plugins demonstrates writing an import library for an existing plugin (Lightbox and Isotope).

https://github.com/nikhilk/scriptsharp/tree/master/samples/PhotoDemo/Gallery demonstrates writing a plugin that enables the following (a method + options type with method using the options object of course):

GalleryPluginOptions options =
    new GalleryPluginOptions("tags", tags,
                             "thumbsListID", "thumbsList",
                             "photoPanelID", "photoPanel",
                             "thumbnailTemplateID", "thumbnailTemplate",
                             "photoTemplateID", "photoTemplate");

jQuery.Select("#gallery").Plugin().Gallery(options);

Гэты біт кода ў метадзе, звязаных з аб'ектам опцый:

public static jQueryObject Gallery(GalleryPluginOptions customOptions) {
    GalleryPluginOptions defaultOptions =
        new GalleryPluginOptions("count", 10,
                                 "photoService", new FlickrService());
    GalleryPluginOptions options =
        (GalleryPluginOptions)jQuery.Extend(new Dictionary(), defaultOptions, customOptions);
1
дададзена
Па-першае, я кажу аб рэальным убудовай, як ваш GalleryPlugin ..
дададзена аўтар rekna, крыніца
Па-першае, я кажу аб рэальным убудовай, як ваш GalleryPlugin .. Ваша галерэя убудова мае толькі адзін метад :. Галерэя (customOptions), але supppose вы хочаце мець дадатковыя метады $ ( «# mydiv») галерэя (варыянты); => Гэта стварае убудова $ ( "# mydiv") disablegallery ().//дадатковы метад у галерэі плагіна (неабходны для доступу да параметраў) або $ ( «# mydiv») галерэя ( «выключыць»).//гэта, здаецца, новы спосаб прадастаўлення дадатковых метадаў у jQuery убудоў
дададзена аўтар rekna, крыніца
Я не магу знайсці добрае рашэнне для гэтага ... паспрабуйце дадаць аб'ект PARAMS [] Parms метады MyPlugin, але статычны метад плагіна не бярэ яго ..
дададзена аўтар rekna, крыніца
Не маглі б вы проста дадаць параметр радкі ў ваш метад убудоў - напрыклад. Галерэя (аперацыя радка) ... ці нават выкарыстоўваць Найменныя пералік і замест таго, каб мець Галерэю (аперацыя GalleryOperation)? Ці я нешта не хапае?
дададзена аўтар Nikhil Kothari, крыніца