問題タブ [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.
python - AppEngine-プロパティがExpandoクラス内に存在するかどうかを確認します
プロパティがexpandoクラス(Python for App Engine)に入力されているかどうかを確認するための良い方法は何ですか
僕にできる:
それとも私にエラーを与えるのでしょうか?
ありがとう!
groovy - groovy Expando :なぜローカル変数を考慮し、expando プロパティを考慮しないのですか?
このテストコードを見てください:
最後のアサーションが失敗するのはなぜですか? 「a」は、expando.a プロパティではなく、ローカル変数と見なされます。
手伝ってくれてありがとう
dojo - dojo Expando ペインのコンテンツを展開すると非表示になる
いくつかのボタンで構成される expandoPane があります。プロジェクトで他の操作を実行してからこの expandoPane を展開すると、その内容が非表示になり、スプリッタのみを使用してサイズを変更した後に表示されます。
これを解決したい。コンテンツが非表示になる理由はわかりますか?
c# - 動的プロパティ アクセサーのインターセプト .NET 4
興味深い質問があります (少なくとも私にとっては): オブジェクト内の任意のプロパティ アクセサー (ゲッター/セッター) をインターセプトして、そのリクエストをプライベート メンバー オブジェクトなどの別の場所に再ルーティングすることはできますか?
外側のオブジェクトが、呼び出し元が知らない内側のオブジェクトの特定の内部プロパティ (つまり、いくつかの例外を除くすべて) に自動的にアクセスできるかのように見せることができれば幸いです。 「シェル」オブジェクトは、内部オブジェクトの各プロパティにマップするプロパティを手動で作成する必要なく、内部オブジェクトのように動作します。
おそらくそれにはパターンがありますが、私の推測では、外側のプロパティを内側のプロパティに手動で配線する必要があります。
jquery - JQueryがUUID機能を公開しないのはなぜですか?
内部では、JQueryは「UUID」のマップ(それが維持するカウンターjQuery.uuid
)を使用して、JavascriptからDOMのタグにプロパティをアタッチするときにブラウザーが抱えるよく知られたメモリリークの問題を回避します。そうする代わりに、JQueryはを使用して$.data(tag, name, value)
、uuid(チェックすることで判別できるキーtag[jQuery.expando]
)からキー設定されたマップにデータを格納します。
非常に便利ですが、データを$.data()
1つのグローバルバケットにダンプせずにタグにマッピングしたい場合があります。たとえば、データの長さを確認したり、ループしたりできる、独自の小さなデータバケットが必要です。
不自然な例として、クリックすると4つの状態のいずれかを回転するアイコンがあるとします。1つが状態2の場合、状態2のアイコンの配列に追加します。これを行う最も明白な方法は、タグを配列に追加することです。ただし、そうするとメモリリークが発生します。チェックボックスを呼び出すこともできます$.data()
が、それでは目的を完全に達成することはできません。すべてのチェックボックスをループして$.data()
、リストにあるチェックボックスとないチェックボックスを確認する必要があります。
タグの抽象化を配列に格納する必要があります。これがjQueryのUUIDです。独自のUUID機能を作成することもできますが、理想的には、コードサイズと品質の両方の理由から、JQueryにすでに組み込まれているUUID機能を利用するだけです。JQueryに、呼び出してUUIDをタグに暗黙的にアタッチするように依頼し、そのUUIDを取得するため$.data(tag, 'irrelevant', 1)
にチェックtag[jQuery.expando]
し、最後にそれをリストで使用することができます...しかし、それはちょっとしたハックです。本当に理想的なのは、パブリックAPIで以下を公開することです。
$.getUuid(tag)
:UUIDが存在しない場合は、それをチェックして作成します。理想的には、メソッドが除外され、$.data()
渡されたタグのuuidが作成またはフェッチされます。
それで、これがjQueryの独自のメソッドに考慮されない理由はありますか?これは何らかの形で有害ですか?それは決して有用と思われるものではなかったのでしょうか?
私が使用しているjQueryのバージョンで実際にそれを除外したことに注意する必要があり、それは非常に役立ちます。しかし、おそらく、私が使用に当たっていない根本的なリスクがあります。これを実現するプラグインも知っていますが、少し壊れています。同じUUID機能を実行するための2つのコードパスがあると、少し無駄が多く、少しもろくなります。
c# - 匿名型を動的に逆シリアル化する
「タスク」と呼ばれるビジネス エンティティを含むアプリケーションがあります。このエンティティには固定のプロパティ セットがありますが、expando として動作する機能もあります。
したがって、そのスキーマは次のようになります。
これを RavenDB に格納すると、このようになります
もちろん、別のプログラムからこのデータストアにクエリを実行しようとすると、int と string を含む匿名型を検索しようとします。その他のプログラムは、ドキュメントを最初に保存した EXE です。これを参照する必要はありません。
動的プロパティを引き出す最良の方法は何ですか? 私の目標は、Raven から Task オブジェクトのリストを照会し、それらを UI でレンダリングするために Xaml に渡すことができるようにすることです。これが、Expando へのデータ バインディングが非常に魅力的である理由であり、コンパイル時にプロパティを知る必要はありません。
このようなステートメントを使用して (Raven に格納する) インスタンスを作成します
@Jacob: 辞書を使用すると、動的プロパティに関するすべての型情報が失われますが、次のようなことができます。
c# - 辞書を変換する方法辞書へColllection.ToDictionary()を使用する
Dapperを使用して、2列の結果セットを辞書にフェッチしています。結果セットにカーソルを合わせると、インテリセンスに.ToDictionary()が表示されることに気付きましたが、dapperは動的プロパティ/ expandoObjectを使用しているため、インテリセンスを機能させることができません。
ありがとうございました
c# - あなたのアーキテクチャでは、URL をデータベース レイヤーとビジネス オブジェクト レイヤーからどのように切り離すのですか?
バックグラウンド
私たちのサイトには、次のような形式のリンクがいくつかあります。
http://oursite.com/books/c_sharp_in_depth_12345 .
これを処理するために、次の単純なプロパティを使用しますUrl
。
基本的に、URL は、当社の Web サイトのドメイン、サイトのセクション (書籍など)、ページの名前、およびリソースを識別する一意の ID から取得されます。完全な URL がデータベースに保存されています。
データベースがセクション名を保存しているという事実は気に入りません。これは Web レイヤー プロパティのプロパティであり、本のプロパティではありません。データベースは、Web レイヤーに依存するべきではありません。
したがって、URL からセクションを削除すると、次のようになります。
OK、これはこの URL で機能します。しかし、当社の SEO 担当者は、私たちの URL が間違っていて、私たちの唯一無二の愛である Google が私たちを愛してくれるのは、私たちが次のように URL を書き直した場合だけだと言います。
http://oursite.com/programming-books/c-sharp-in-depth-12345
おっと、Web レイヤーへのデータベースの依存関係を削除したと思っていましたが、そうではありませんでした。結局のところ、セクションへの依存関係は削除されましたが、URL の形式はデータベースにまだ存在しています。URL をオブジェクトに抽象化することでこれを修正します。
これで、Web レイヤーへの依存がなくなりました。ええと、今度は弊社の CEO が来ます。新しい会社を買収したばかりで、現在は雑誌を販売しています。すごい?雑誌の URL は次のようになります。
http://oursite.com/magazines/computers/stack-overflow-the-magazine/2012/01/01/12345
OK、問題ありません。別のオブジェクトを作成してください。
それは機能しますが、大きなサイトの計画があることに気づき始めます。たくさんの URL。さまざまな形式の URL がたくさんあります。毎回新しいクラスを作成することは、大きな頭痛の種のようです。
問題の概要
Web 層がビジネス層とデータ層から適切に分離されるように、URL をどのように処理しますか? 私は解決策についていくつかの考えを思いつきました:
問題の詳細
これがいくつかの混乱を明確にするのに役立つことを願っています。
ASP.Net MVC を使用しています。ルートを使用します。ヘルパーを使用します。ビジネス オブジェクトではなく、フラット化された DTO を Web レイヤーに渡します。この問題は、サービス層と DTO の急増に関係しています。
これは主にトラフィックの多いニュース サイトであり、ビジネス サイトではありません。多くの異なる URL を持つことができ、URL はいつでも変更できます。それらは複雑で、管理者によって任意に決定される可能性があります。
URL の例 (実際のものではありません。例として作成されています)。
上記はすべて「記事」であり、記事クラスがあります。記事には、AuthorObject、RelatedLinksCollection などの多数のナビゲーション プロパティがあります。ビジネス オブジェクトはクライアントに渡すには重すぎるため、情報を平坦化する DTO を渡します (AuthorName など)。ただし、上記のリンクは、すべて「記事」であっても、異なる情報を必要とする場合があります。
- カテゴリ、サブカテゴリ、タイトル、ID が必要
- Category、Subcategory、PoliticsCategory、タイトル、ID が必要
- カテゴリ、タイトル、ID が必要
- カテゴリ、タイトル、ID が必要
- カテゴリ、サブカテゴリ、タイトル、ID が必要
- CeoCategory、CeoSubcategory、PublishedDate、Title、ID が必要
C# などの静的プログラミング言語では、これを処理する通常の方法は、別個の DTO クラスを作成することです。継承を追加してコードの一部を削減することもできますが、それでも複数の「アーティクル」dto クラスが作成されます。
等
交渉不可能な方法でカスタム URL を作成する機能。記事が何か (状態、カテゴリなど) に関連している場合、それは URL の一部になる可能性があります。
ソリューション?
Url
必要に応じてオブジェクトを追加し続けます。幾つか?少なくとも十数個ですが、名前を付けるのは面倒です。ビジネス オブジェクトごとに 1 つ実行すると、名前の問題は解決しますが、それは数十または数百の新しいオブジェクトを意味します。うん。IOC - 構成を介してルート パターンをデータ アクセス層に渡します。その後、データ アクセス レイヤーは完全な URL を作成できます。URL パターン名はまだ問題です。
Dictionary<TKey, TValue>
、などを使用KeyValuePair<TKey, TValue>
して引き込みます。URL の詳細には
Expando
またはを使用します。DynamicObject
したがって、url にはいくつかの基本的なプロパティ (name
とid
) が含まれますが、必要に応じて他のプロパティを追加できます。
動的プログラミングが静的言語よりも優れていると思われるため、4) を使用することを考えています。ただし、私は新しいおもちゃで遊ぶのが好きなので、それを最も見ているだけかもしれません (私はこれまでに expando を使用したことがありません)。
オブジェクトの爆発のため、1)よりも優れています。2) が複雑なシナリオで機能するかどうかはわかりません。DI を使用して単純なルート名 + ルート情報をデータ層に渡すこともできますが、追加のゲインなしで達成するのは難しいようです。また、複雑なルートではおそらく機能しないでしょう。そのためには、UI 側にルール エンジンが必要だと思います。
3)に比べて、4)の方が少し良いと思います。私が間違っている場合は誰かが私を修正しますが、動的型は辞書の上にあるシンタックスシュガーにすぎないように見えますが、よりクリーンなコードという利点があります。ちょっとした考え。
automated-tests - Selenium 2.0 および findBy - カスタム プロパティまたは Expando プロパティ
expando プロパティのようなカスタム プロパティによってページ上の要素を検索するための提案はありますか?
問題: サイトでは、ボタンに多数の JSP と動的イメージが使用されています。静的な名前や ID はありません。(すべてのページに「次へ」または「続行」ボタンがあるが、現在のコンテキストに応じて動的に移動する登録またはチェックアウト プロセスを考えてみてください)
推奨される解決策: これらは自動化できないという私の繰り返しの要求に対して、最近、"btn-tag-title" のカスタム expando プロパティで回答されました。
ページ上のすべての要素に btn-tag-title= という名前の一意の (ただしカスタムの) プロパティがある場合、Selenium 2.0 は毎回それを信頼できると判断できますか?
その他の推奨ソリューション?
grails - Grails:printlnは時々か何かでしか機能しません
私はまったく新しいgrailsプロジェクトを作成し、これをブートストラップに入れます。
そして、それは私が期待することを実行します、run-app prints:
しかし、私がそれを取り出すと、println "rofl"
その2番目のものは印刷されません。roflなしで1を出力するだけです...WTF?
繰り返しますが、これは私には意味がないため、このコードは次のとおりです。
プリント: