scriptsharp&jquery plugin:プラグインの追加メソッドを提供する方法

私はscriptsharpでjqueryプラグインを作成します...追加のメソッドを定義し、プラグインのオプションにアクセスするにはどうしたらいいですか?

私が見る限り、利用できるメソッドは1つしかなく、オプションは要素に格納されていませんか?

例えば私は書くことができるようにしたい:

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 )

OK、最初のパラメータ、methodOrOptionsは醜いですが、おそらく唯一の方法は、javascriptの性質のためです。 しかし、余分な引数を指定する必要があります。それは残念ですが、ここではparams object []を使うことはできません。 ( 4 nov更新:オプションのパラメータもサポートされていません...)

それでも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);

このコードは、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,
Galleryプラグインには、Gallery(customOptions)というメソッドが1つしかありませんが、追加のメソッド$( "#mydiv")が必要です。 =>これはプラグイン$( "#mydiv")を作成します。disablegallery(); //ギャラリープラグインの追加メソッド(オプションにアクセスする必要があります)または$( "#mydiv")gallery( "disable"); //これはjqueryプラグインの追加メソッドを提供する新しい方法のようです
追加された 著者 rekna,
私はこれに対して良い解決策を見つけることができないようです... paramsオブジェクト[] parmsをMyPluginメソッドに追加しようとしましたが、プラグインの静的メソッドはそれを受け入れません。
追加された 著者 rekna,
プラグインメソッドに文字列パラメータを追加するだけではありませんか?ギャラリー(文字列操作)...または名前付き列挙型を使用し、代わりにGallery(GalleryOperation操作)を持っていますか?それとも私は何かが足りない?
追加された 著者 Nikhil Kothari,