問題タブ [expando]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
571 参照

ruby - Ruby で Expando オブジェクトを作成する

この Expando クラスを記述するより良い方法はありますか? 書き方がうまくいかない。Ruby 1.8.7 を使用しています

https://gist.github.com/300462/3fdf51800768f2c7089a53726384350c890bc7c3から引用された開始コード

0 投票する
1 に答える
2198 参照

unit-testing - Groovyでは、Expandoと'as'演算子およびクロージャを使用することが理にかなっているのはいつですか?

Groovyは、さまざまな選択肢を提供する素晴らしい言語です。

単体テストについて考えるとき、Expandoオブジェクトとクロージャー付きの「as」演算子を使用するのはいつ意味がありますか?

http://groovy.codehaus.org/Developer+Testing+using+Maps+and+Expandos+instead+of+Mocks vs http://groovy.codehaus.org/Developer+Testing+using+Closures+instead+of+モック

単純なケースでは、それらの使用法は非常に似ているようです。

ありがとう!

0 投票する
1 に答える
2823 参照

c# - グリッドビューを ExpandoObject にデータバインドする方法

を使用してASP.NETGridViewをにデータバインドしようとすると、次の例外が発生します。IEnumerable<ExpandoObject>ObjectDataSource

System.Web.HttpException (0x80004005): DataBinding: 'System.Dynamic.ExpandoObject' に 'StoreID' という名前のプロパティが含まれていません。

にデータバインドする方法を知っている人はいますExpandoObjectsか?

0 投票する
1 に答える
662 参照

python - Python用のGoogleAppEngineのexpandoプロパティの自動インデックス

Google AppEngineのpythonsdkは、データストアに永続化できるオブジェクトに動的プロパティを追加するために使用できるExpandoタイプのオブジェクトを提供します。

また、アプリエンジンでは、オブジェクトを検索または並べ替える必要のあるプロパティについて、アプリをGoogleのサーバーにアップロードする前にインデックスを作成する必要があります。これは、ユーザーがオブジェクトにどのプロパティを作成するかを事前に知っているはずなので、本当に奇妙です。それを事前に知っていた場合、既存のモデルで静的プロパティとして定義しないのはなぜですか?

App Engineにアップロードした、Expandoモデルの動的プロパティのインデックスを自動的に作成する方法を知っている人はいますか?そうでない場合は、検索または並べ替えが可能な新しいプロパティを作成できず、検索または並べ替えができないプロパティのみを作成できないのに、gaeがExpandoを動的構造として宣伝する理由を誰かに教えてもらえますか。

0 投票する
1 に答える
1956 参照

javascript - ユーザー コントロールに expando 属性を追加するにはどうすればよいですか?

既存の ASP.NET ユーザー コントロールにカスタム JavaScript 機能を構築しています。ユーザーコントロールは、それがネストされているコントロールのプロパティについて知る必要があります。そのため、次のようなグローバル javascript 変数ではなく、expando 属性を使用することを選択しました。

ただし、Expando は適切にクライアントに出力されますが、usercontrol 自体には HTML に対応する要素がありません。したがって、ASP.NET によって自動生成される次の JavaScript は、「オブジェクトが null です」というエラーを受け取ります。

少し調べてみたところ、IWebPart インターフェイスを実装することで解決できる可能性があることを示すこのページを発見しましたが、うまくいきませんでした。

ユーザーコントロールにサーバーコントロールのようなタグを出力させる方法はありますか? それとも、全体をサーバー コントロールに変換する唯一のオプションですか (この場合、これは Web サイト デザインの粒度に反します)。

他のアイデアがあれば、ユーザー コントロールで共有 JavaScript プロパティを宣言するための他の提案を受け入れます。

0 投票する
1 に答える
4281 参照

.net - ExpandoObject インスタンスの生成されたメンバーに属性を追加することは可能ですか?

ExpandoObject を PropertyGrid の SelectedObject として使用しようとしています。必要なプロパティを ExpandoObject に追加する方法を知っています。

このコードは正常に動作しています。デバッガーは、expandoのプロパティの名前と値を期待どおりに表示します。

MakePropertyObject()ただし、戻り値をそのプロパティに設定すると、生成されたプロパティはどれも PropertyGrid に表示されませんSelectedObject。これは、ExpandoObjectのプロパティDisplayNameAttributeに 、DescriptionAttribute、またはPropertyGrid.

私はいくつかの読書とグーグルをしましたがExpandoObject、カスタム属性で生成されたプロパティを装飾する方法があるかどうかわかりません。これを行う方法、または を に表示するより良い方法を知っている人はExpandoObjectPropertyGridますか?

解決:

@Stephen Cleary が提供した回答は正しく、役に立ちました (ありがとう、Stephen)。同じ問題を抱えている他の人にとって、実装ICustomTypeDescriptorは私にとって完璧に機能しました。

補足として、実装するオブジェクトICustomTypeDescriptorは、別のオブジェクトではなく、それ自体のプロパティとイベント記述子を提供します。最初は、記述子と記述されたものは属性または何かによってリンクされているはずだと思っていました-オブジェクトが独自のタイプを記述しなければならないことは混乱し、冗長に思えましたが、実際にはそれがインターフェイスPropertyGridの使用方法です。ICustomTypeDescriptor

0 投票する
1 に答える
350 参照

python - App Engine の Python での Clone と Expando クラス オブジェクト

Google App Engine で Python を使用しているときに、Expando クラス オブジェクトを複製 (コピーを作成) する良い方法は何ですか?

ここでいくつかのコードに出くわしましたが、間違っていない限り、expando プロパティでは機能しません: Copy an entity in Google App Engine datastore in Python without know property names at 'compile' time

ありがとう!

0 投票する
1 に答える
1234 参照

java - Groovy Expando シリアライズ可能

動的に追加されたプロパティで取得できる expando サブクラスをシリアル化する方法はありますか。例を挙げて;

私は出力を取得します:

Sexpandoオブジェクトの元のtestPropフィールドでも同じ例を試しました(上記でコメントアウトされています)

Groovy のオリジナルの Expando.java はHEREから調べることができます

アドバイスありがとうございます!

0 投票する
5 に答える
2784 参照

python - App Engine エンティティからディクショナリへ

Google App Engineエンティティ(Python)を辞書オブジェクトにコピーする良い方法は何ですか? db.Expando オブジェクトを使用しています。すべてのプロパティは expando プロパティです。

ありがとう!