問題タブ [angularjs-components]
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 - Angular コンポーネントを使用してコンポーネント バインディングの変更を監視する方法
angular コンポーネントバインディングの変更をリッスンしてアクションを実行するにはどうすればよいですか?
変更があった場合items
、この値を使用して別のアクションを実行したいのですが、
どうすればよいですか?
angularjs - オブジェクトをコンポーネントに渡す
コンポーネントが作成されたオブジェクトへの参照が必要なコンポーネントを作成しました。私は仕事をしませんでした、そして私のすべての試みは失敗しました。以下、その意図を述べようと思う。
コンポーネントの定義は次のようになります。
サービスでは、次のようにオブジェクトを作成したいと思います:
質問
angularコンポーネントタグにデータを渡すにはどうすればよいですか? コンポーネント ディレクティブを機能させるには、コンポーネント ディレクティブに戻す必要がありますか?
どんなアイデアでも大歓迎です。ありがとうございました。
javascript - 角度コンポーネント:親で定義された出力バインディング関数の値を指定する方法は?
私はAngular 1.5 のコンポーネントを使用して、その一方向バインディングの利点を得たいと考えていました: <hero-detail hero="ctrl.hero" save="ctrl.save(hero)"></hero-detail>
. しかし、Todd Motto が彼のブログ ( Todd Motto's blog: One-way data-binding in Angular 1.5 ) で指摘しているように、プリミティブに対してのみ適切に機能します。したがって、プリミティブをバインドする必要がありました。
コンポーネントの次は、$onInit
オンフックで、hero
プリミティブからオブジェクトを作成します。
ユーザーが保存をクリックすると、指定された関数が呼び出されます。奇妙な部分は、ユーザーがコンポーネント内でヒーローの名前を変更して保存をクリックすると、親からバインドされた関数が呼び出されたときに、コンポーネントからの変更がないことhero-detail
です。私の問題を示す plunker を作成しました: Plunk which shows problem with children/parent output binding in Angular 1.5 - 開発者コンソールを開いて [名前の設定...] をクリックし、[保存] をクリックすると、console.log
s が表示されます。それからhero-detail
Spawn2ですが、親コンテキスト(サービスとの会話などのロジックがあるべき場所$http
)では、まだ古い値がありますSpawn
。何か不足していますか?Angular docsのコードは、私のコードのように見えます:
何が起こっているのかわかりません。この問題に対処するために私を助けてくれてありがとう。PS Plunk のバージョンに問題がありましたが、今はすべて問題ありません。ブラウザーの開発者コンソールで、更新に関する問題を確認できます。
angularjs - テンプレート: 未解決の変数またはタイプ $ctrl
テンプレートが既知であることをPhpStorm/WebStormに伝え$ctrl
、それが属するコントローラーを決定するのに役立つ方法(おそらくjsdocを使用)?
Angular 1.5 では、次の方法でコンポーネントを作成します。
ControllerAs
役に立たなかった...
問題が発生する場所の HTML スニペット ( $ctrl.*
):
javascript - コンポーネントに付随するテンプレートを単体テストするにはどうすればよいですか?
$componentController を使用してコンポーネント コントローラーをテストすることになっていることは理解していますが、コンポーネントに付随するテンプレートをテストするにはどうすればよいでしょうか? ディレクティブの場合は非常に簡単で、コンポーネントの場合も同様に簡単だと思います。ドキュメントや他の場所で答えを見つけることができませんでした。これが例です。
次のようなテンプレートを持つコンポーネントがあります。
テストでプログラムによってクリックをトリガーし、コンポーネントのコントローラーのメソッドである vm.doSomething() が実行するはずだったものを、正しく実行したことを確認したいと思います。どうやってやるの?
javascript - Angular 1.5コンポーネントの双方向バインディングが機能しない
双方向バインディングの値を更新しないように見える Angular 1.5.3 コンポーネントがあります。私のコントローラーは、コンポーネントに渡される値を変更します。
コンポーネントは、コントローラーの初期化時にデフォルト値を読み取るように見えますが、その後は一方向にバインドされているかのように動作します。バインドされた値に対する将来の変更は、コンポーネントに読み込まれません。
これを同様の機能ディレクティブから変換したところ、双方向バインディングは問題なく機能しました。変更時イベントまたは同様のイベントはありますか? コンポーネントが不足していますか? コンポーネント テンプレートがバインドされた値を読み取れるように、特定のロジックをコンポーネント コントローラーに追加する必要がありますか?
コンポーネントを実装するメニュー テンプレート:
サブメニュー コンポーネント:
簡略化されたサブメニュー コンポーネント テンプレート: