現在、コントローラを使用せずに、Angular2スタイルでコードを記述しようとしています。外部および内部指令からのデータ転送の問題に直面しています。どのように正しく行うには? 主な問題は、ディレクティブの内部が外部スコープにアクセスし、内部ディレクティブのテンプレート内のデータを使用する方法です。例 on codepenAngularjs。ネストされたディレクティブの継承スコープ
<test-directive>
<nested/>
</test-directive>
現在、コントローラを使用せずに、Angular2スタイルでコードを記述しようとしています。外部および内部指令からのデータ転送の問題に直面しています。どのように正しく行うには? 主な問題は、ディレクティブの内部が外部スコープにアクセスし、内部ディレクティブのテンプレート内のデータを使用する方法です。例 on codepenAngularjs。ネストされたディレクティブの継承スコープ
<test-directive>
<nested/>
</test-directive>
を値を渡す必要があります。
class Nested {
restrict='E';
template='<p>Nested {{inner.outer}} {{inner.last}}</p>';
controller=function(){
this.last='Pupkin';
};
controllerAs='inner';
bindToController={
outer: '=' // a communicating point of outer and inner directives
};
}
ポイントはbindToController
に、あなたはここにouter
として、エンドポイント変数を追加することができ、ということです。外側のテンプレートには、<nested outer="outer.first"/>
のような値を付けます。ギュンターZöchbauerの答え@
あなたはAngualr 1とコンポーネントのスタイルを使用しての全体の例を見たい場合は、あなたが私のexpress-angular-es6-starter、ES6とTODOのMVCとコンポーネントのスタイルを見ることができ、また、角度2
のためであります角度1のコード。
あなたは私version変更を参照してください、あなたはcodepen簡略化されてきた明示的
<test-directive>
<nested [someInput]="somePropertyOnParent"></nested>
</test-directive>
@Component({
selector: 'nested',
template: `<ng-content></ng-content>`)}
class Nested {
@Input() someInput;
ngOnInit() {
console.log(this.someInput);
}
}
このソリューションはAngulyar 2ですが、Angular1だけを使用して同じことをしなければなりません!しかし、とにかくありがとう) – powerman23rus
ありがとう!私はこのようなことを知っていたが、それはかなり時間がかかったと思うか、あるいは私はすべて同じと間違っているのだろうか? – powerman23rus
あなたはいつbindsToControllerを使うべきか説明できますか?私はそれぞれの指示にそれを書いているので、正しいのでしょうか?私はあなたがオブジェクトとしてそれを使用することに気付きました、そして、これは変数の値がブール値であると思いました... – powerman23rus
そして、ng-transcludeの助けを借りて過去と未来をリンクすることは可能ですか?たとえば、パドルの「最大」と「最小」スライダの値にアクセスできますか?このような - > [テンプレート](http://codepen.io/powerman23rus/pen/RaxaEP)< - link – powerman23rus