AngualRJSディレクティブにおけるアウトバウンド属性表現の活性化
これは手記です.
シナリオ
属性ディレクティブが必要で、コンポーネントを使用できず、ディレクティブを使用すると、親コンポーネントにデータを渡すことができます.
コンポーネントで使用できる
解決策
指令制御装置
$attrsはそれぞれの注入されたコンポーネント/ディレクティブのために付属の要素のattrsを含む特別なオブジェクトです. If 角度 新しいスコープを作成するので、ディレクティブの外部ユーザーは、それらを必要とする場合には、指定した式にも親スコープ変数を使用できます.さもなければ、私たちは 新しいスコープは、リークを防ぐために配置する必要があります.
シナリオ
属性ディレクティブが必要で、コンポーネントを使用できず、ディレクティブを使用すると、親コンポーネントにデータを渡すことができます.
コンポーネントで使用できる
&
結合.しかし、ディレクティブでは&
仕事をする.解決策
指令制御装置
function ($scope, $attrs, $parse) {
const exprFn = $parse($attrs.myDirective);
const newScope = $scope.$new(false, $scope);
newScope.variableToPass = 1234;
exprFn(newScope);
newScope.$destroy();
}
コンポーネント<div my-directive="$ctrl.setValue(variableToPass)"></div>
myDirective
はmyDirective
, また、$attrs
オブジェクトとしてmyDirective
同名.$parse
Serviceでは、Angularjs JavaScript式を表す文字列をアクティベーション機能にコンパイルできます.この関数は、その関数に与えられたparamsのコンテキストでその式を順番に実行することができますexprFn({ someVar: 1234 })
Reference
この問題について(AngualRJSディレクティブにおけるアウトバウンド属性表現の活性化), 我々は、より多くの情報をここで見つけました https://dev.to/elpddev/activating-outbound-attribute-expression-in-angualrjs-directive-56lbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol