2009-04-24 5 views
0

を設定します、私は道場について多くを知っているが、次のことができません。道場は/オーバーライド可能

私はそれがそのデータストアにアクセスするためのゲッター/セッターを持っていると仮定し、それがこのコードを上書きすることが可能です。例えば

に着くチェックすることが可能です:

のget()

if name.firstChar = '@' then just 
return 'Joe' 

:i 'は@Joe名' を持っている道場ストアで

および:

set(var) 
if name.firstChar = '@' then set to @+var 

これは可能でしょうか?または私はラッパーAPIが必要ですか?

答えて

0

はい、私はそう信じています。私が何をやりたいだろうが、ここでこれを読んで、それが動作する場合、どのように決定されると思う:

次の文は、答えはイエスであると信じて私をリード:

... 要求することによりアクセスは 店舗機能を経由して、店舗は項目の内部構造 を非表示にすることができます。 これは、項目が のデータ型を表す の特定の状況で最も効率的な形式のままであることを可能にします。たとえば、 のアイテムはXML DOMエレメントであり、その場合は となります。 store.getValue()が呼び出されたときにストアはDOM APIを使用して の値にアクセスします。

第2の例として、アイテムは、単純なJavaScriptの構造と ストアは、通常のJavaScriptのアクセッサ 表記を介して値 にアクセスすることができるかもしれません。エンドユーザ の観点からは、アクセスはまったく同じ と同じです:store.getValue(item、 "属性")。これにより、さまざまなデータ型の にアクセスするための一貫したルックアンドフィールが提供されます( )。これはまた、 は、 アイテムにアクセスする際の効率を向上させ、 によってアイテムの読み込み時間を減らすことによって、 内部フォーマットの変換を回避し、すべてのストアで を使用する必要があります。 ... ストアアクセサー機能を経由すると、 は、 遅延参照解決と同様に、 遅延ロードの可能性を提供します。

http://www.dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/what-dojo-data/dojo-data-design

私はあなたの例を与えるのが大好きですが、私は多くの調査を取るつもりだと思います。

1

は、あなたは私はあなたが次のような問題を解決することができると信じて

getValue(item, "key") 

を使用する必要がストアからデータを取得するために、http://docs.dojocampus.org/dojo/data/api/Read

まずから最高のドキュメントを取得することができます。これは、ItemFileReadStoreを使用していると仮定して、別のものを使用して、置き換えるだけです。

dojo.require("dojo.data.ItemFileReadStore"); 
dojo.declare("MyStore", dojo.data.ItemFileReadStore, { 
    getValue:function(item, key){ 
     var ret = this.inherited(arguments); 
     return ret.charAt(0)=="@" ? ret.substr(1) : ret; 
    } 
}) 

そして、ItemFileReadStore(または使用しているストア)の代わりに「MyStore」を使用してください。 私はちょうどコードをハックしましたが、試してみませんでしたが、それは解決策を示すはずです。 幸運