2
私は自分の会社でこのパターンに遭遇しましたが、未定義のプロパティを独自のスコープで子ディレクティブに渡すという指示があります次に定義され(通常、子の範囲でプロパティを使用する)、後で親だけでなく、親の他の子によっても使用されます。私は子供のスコープへのすべての種類の参照があるので、これで何をするかについて私の頭脳をかき鳴らしています。子どもによって定義される未定義の関数を渡す不思議な角パターン
これは良いパターンですか?一般?私はそれが悪いように感じますが、私はかなり角度があり、それを呼び出すことを躊躇しています。
<parent>
<child-one function="foo"></child-one>
<child-two function="foo"></child-two>
</parent>
親だけでfooへのrefまたはchildTwoディレクティブはそれを呼び出すようになり、定義がchildOneのディレクティブです。 「シングル責任」:
.directive('parent', [function() {
return {
link: function ($scope) {
$scope.someOtherFunction = function() {
$scope.foo();
}
}
};
}])
.directive('childOne', [function() {
return {
scope: { foo: '=' },
link: function ($scope) {
$scope.foo = function() {
// do something
}
}
};
}])
.directive('childTwo', [function() {
return {
scope: { foo: '=' },
link: function ($scope) {
$scope.someTotallyDifferentFunction = function() {
$scope.foo();
}
}
};
}])
本当に悪です。双方向バインディングは、動作ではなくスコープ間でデータを渡すためのものです。適切な実装は 'foo'が何をするかに依存しますが、もっとも、それは' = 'を酷使してはいけません。 – estus