問題タブ [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.

0 投票する
4 に答える
12793 参照

angularjs - Angular.js とアドセンス

angular.js アプリに広告を掲載しようとしています。いくつか読んだところ、通常のアドセンス コードをコピーして貼り付けるだけでは不可能であることがわかりました。

「トランスクルージョンを使用してディレクティブにラップする」必要があると聞いたことがありますが、これについて私が見つけることができる唯一の例は、別の Stackoverflow の投稿です: AngularJs と AddThis ソーシャル プラグイン

Google Adsenseでこれを行う方法について、誰かがガイダンスを提供できますか?

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

angularjs - AngularJS - トランスクルージョンされた要素のモデルを監視する

AngularJS には、基本的なトランスクルージョンを持つディレクティブがあります。私はそれを使用するときに通常、入力またはテキストエリアがトランスクルードされることを知っています。もしあれば、そのモデルの変更を $watch したいと思います。しかし、トランスクルージョンされたコンテンツの属性にはアクセスできず、ディレクティブが呼び出されるルート要素の属性にしかアクセスできません。トランスクルージョンされたスコープも同様です (おそらく scope.$$nextSibling が役立つかもしれませんが、何かが地獄への道だと教えてくれます :) )。

ディレクティブが呼び出される要素に別のパラメータ(属性)を追加せずにそれを行う方法はありますか?

ディレクティブ テンプレート

ディレクティブの使用

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

angularjs - transcluded ディレクティブから分離された親スコープにアクセスする

ここ StackOverflow に関するすべての同様の質問とは正反対のような状況に遭遇しました。

私はディレクティブを持っています。これは、何らかの<scroll>スクロール可能なコンテンツでコンテンツをラップするだけです。div多かれ少なかれ次のようになります。

これはそれ自体でうまく機能します。

ここで、分離されたスコープ<editor>を持ち、そのテンプレート内で使用するという別のディレクティブがあります。多かれ少なかれ次のように見えます:<scroll><editor>

さて、これが取り引きです:のリンク関数<editor>内から のスコープにアクセスする必要があり<scroll>ます (「ここにコードがあります」と書かれています) が、何らかの理由でアクセスできません。の link 関数のscope変数<scroll>はほとんど空で、邪魔になると思われる をscope.$parentスキップして、上記のコントローラーを提供します。<editor>

ng-transcludeのさまざまな場所で遊ん<editor>で試してみましたが$emit、これについては本当にわかりません-スコープの分離は、「私と私の下のすべて」を上から分離すると思いますが、スコープの分離には時間がかかるようですスコープツリーから「私」...

これが十分に明確であることを願っています、ありがとう。

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

angularjs - Angular: トランスクルージョンされたテンプレートのリンク

親スコープからの ng-repeat によって部分的に取り込まれたディレクティブがあり、リスナーが にアタッチされていpostLinkます。ただし、コンテンツはトランスクルージョンされているため、リンク時に利用/補間されません。

実証するために 、 JSFiddle の例をまとめました。

テンプレート:

コード:

この場合、リスト アイテムの数は、トランスクルージョン後に予想される 5 ではなく、2 になります。

どうすればこれを機能させることができるか、誰にもアイデアがありますか? ある種のトランスクルード後のイベントを見つけて、そのときだけリンクを実行できると期待していましたが、見つけることができませんでした。

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

angularjs - トランスクルージョン後にコントローラーのスコープにアクセスするにはどうすればよいですか?

私が間違っている場合は修正してください。ただし、シナリオでは、兄弟スコープを作成しているためfirstDirective、の動作を達成できないと思います。secondDirectiveテンプレートのコントローラーのスコープにアクセスできません。secondDirective透視の力での振る舞いが欲しい。これを達成する方法はありますか?または、この問題を間違った方法で攻撃していますか?

http://jsfiddle.net/3QRDt/68/