問題タブ [transclusion]
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.
javascript - AngularJS: ng-repeat を使用するテンプレートに要素をトランスクルードするにはどうすればよいですか?
渡された配列を要素構造の配列の配列にマップするチャンクを含むカルーセル ディレクティブがあります。これによりitems
、以下の疑似コードのようなマークアップが生成されます。
この角度テンプレートは次のようになります。
私のビューコードを考えると:
item
トランスクルージョンされた要素を最も深いオブジェクトにバインドしたいng-repeat
テスト ケースを縮小した完全な Plunker は、http://plnkr.co/edit/kYItcXV0k9KvnpiYx1iG から入手できます。
ng-transclude
問題は、属性を の中に入れることができないことng-repeat
と、(Plunkr のディレクティブ ファイルが示すように) のステップで関数carousel.js
を使用しても、トランスクルードされるマークアップをその場所に手動で挿入できないように見えることです。指令。transclude()
compile
どんなアイデアでも大歓迎です。
angularjs - ng-transclude とは何ですか?
ng-transclude について議論している StackOverflow に関する多くの質問を見てきましたが、それが何であるかを素人の言葉で説明しているものはありません。
ドキュメントの説明は次のとおりです。
トランスクルージョンを使用する最も近い親ディレクティブのトランスクルードされた DOM の挿入ポイントをマークするディレクティブ。
これはかなり紛らわしいです。ng-transclude が何を意図しているのか、どこで使用されるのかを簡単な言葉で説明できる人はいますか?
javascript - AngularJS : 要素のトランスクルージョンでモデルへのアクセスを維持する
プランカー: 直接編集の例。
上記のプランカーには、次を使用するディレクティブ (直接編集) があります。
要素を他のマークアップで囲みます。ディレクティブ
追加のマークアップをモデルに接続します。ただし、初期要素は ng-transclude でラップされているため、モデルから切り離されます。これを修正する方法を知っている人はいますか?
編集(以下のコメントから):
明確にするために:任意のディレクティブを取りたい:
そして直接編集ディレクティブを追加して、任意のディレクティブが値を直接編集するフィールドとペアになるようにします。簡単にするために、サンプル コードではテキスト入力のみを示しています。
angularjs - Angular transcluded directive with two-way binding to controller not updating
I am using this https://github.com/blackgate/bg-splitter for creating horizontal and vertical pane splitters. (The full code is in the plunkr I have created)
Since I started using it, I have an issue with the two-way binding of a controller and directive.
The directive has two variables, listData and the selectedOption:
The controller has these variables and has a watch function to watch for changes:
And the directive is being used like:
Without the paneSplitter the dropdown is working. For some reason, when the bound variable is updated in the dropdown directive, it doesn't get updated in the controller. This is probably a scope issue, but I can't seem to figure it out myself. Any help is greatly appreciated. Please see the following plunkr with the full code:
angularjs - 何かをトランスクルージョンする方法
SVG 要素を別の SVG ディレクティブに変換しています。「component」という親ディレクティブのテンプレートは次のとおりです。
ディレクティブが使用されるマークアップは次のとおりです。
トランスクルージョンされた要素<rect>
の測定サイズに応じて、テンプレートのサイズを変更したいと考えています。トランスクルージョンされた要素を測定して適切なandを設定するため<text>
に、参照を取得するにはどうすればよいですか?<text>
rectWidth
rectHeight
templates - テンプレート入力から MediaWiki ページを自動的に作成する
複数のユーザー入力を取得するテンプレートがあります。これらの特定の入力の 1 つについて、その入力のコンテンツを含む新しいページを自動的に作成したいと考えました。
例: wiki.com/wiki/Article
Dataに入力した内容から自動でページを作成したい。そのため、現在のページの新しいサブページ (データと呼ばれる) が作成されます。
wiki.com/wiki/Article/Data には以下があります
拡張機能またはソフトウェア自体のいずれかによって、これは MediaWiki ソフトウェアで可能ですか?
編集: この拡張機能http://www.mediawiki.org/wiki/Extension:WikiDBは、基本的に私が上で説明したことを行います。存在しないページにデータを定義し、このデータを取得して他の場所で使用できるようにします。
javascript - ng-transclude as: 要素 vs 属性
リスト内の通知ウィジェットのフレームとして機能するラッパー ディレクティブを作成したいと考えています。そのフレームでは、後でオブジェクトのプロパティに基づいて特定のコンテンツをトランスクルージョンしたいと考えていnotif
ます。現在、要素をハードコーディングしていdiv
ます。
私は index.cshtml に以下を持っています:
これはディレクティブの仕様です:
次のように機能するのはなぜdiv
ですか?
...しかし、要素のように使用すると、フクシアの div が表示されなくなります。
ng-transclude
属性または要素として使用する場合の違いは何ですか。(私はFirefoxを使用しています)。
caching - MediaWiki で恐ろしいトランスクルージョン キャッシングはどのように機能しますか?
私たちは小規模なウィキ ファーム (同じトピック、6 つの言語で成長中) を運営しており、最近ほとんどのテンプレートを更新して、メンテナンスと読みやすさを容易にするために、メタ テンプレートの複数のレイヤーを使用するようにしました。
これらのテンプレートをすべての言語で標準化したいと考えているため、ほとんどのテンプレートには各ウィキでまったく同じコードが含まれます。これが、メンテナンスをさらに簡素化するために、恐ろしいトランスクルージョン (より具体的には置換) の使用を検討している理由です。これにより、これらのメタテンプレートは 1 つの wiki にのみ保存され、すべての wiki ではなくその wiki でのみ更新する必要があります。シングルバージョン。
(注: より良いアイデアを思いついたら、遠慮なくこの投稿にコメントしてください!)
ただし、恐ろしいトランスクルージョンは恐ろしく非効率的であるためにそう呼ばれているため、そのように含まれるコンテンツが MediaWiki によってキャッシュされる方法についてもっと知る必要があります。
私の理解が正しければ、ページの HTML 出力はパーサー キャッシュに $wgParserCacheExpireTime の間保存されます。デフォルトは 1 日ですが、小規模から中規模のウィキでは、ページ自体または含まれているページが更新された場合 (およびその他のマイナーなケース) にかかわらずコンテンツが更新されるため、これを増やしても安全です。
恐ろしいトランスクルージョンのキャッシュ期間もあります: $wgTranscludeCacheExpiry. 毎回その HTTP 呼び出しを行いたくないからです。ただし、既定値の 1 時間は、記事がときどきしか表示されない小さな wiki には適していないため、そのキャッシュはまったく役に立たなくなります。
ページ A が別のウィキのテンプレート C を含むテンプレート B を使用している場合、$wgTranscludeCacheExpiry を超えた後、ページ A を完全に再生成する必要がありますか? それとも、$wgParserCacheExpireTime を超えるまで、テンプレート B のパーサー キャッシュを使用できますか?
パーサー キャッシュと同じように $wgTranscludeCacheExpiry を 1 か月に増やすこともできますが、トランスクルードされたテンプレートが更新された場合、ページは自動的に更新されませんよね?
はいの場合、トランスクルージョンされたテンプレートを使用してページを更新することが、他のウィキを更新する唯一の解決策になりますか?