で、私は私が指示および範囲によって指定されたパラメータでコールバックを実行できるようにしたいのですが、かなりシンプルなディレクティブを持っています。例:AngularJS指令を実行するコールバックはPARAMS
<div ng-repeat="user in users">
<div sample="..." callback="welcome(user, $message)">
</div>
</div>
これを処理するには、$parseの使用に問題があります。私のサンプルディレクティブは次のとおりです。
app.directive('sample', ['$parse', function ($parse) {
return {
restrict: 'A',
scope: {},
link: function (scope, element, attrs) {
// ...
function greet() {
var callback = $parse(attrs.callback);
callback(scope, { $message: 'Howdy' });
}
},
},
}]);
をしかし、$の解析から機能を取得するにもかかわらず - (:角1.5.xの上のノート)と呼ばれている(コントローラで定義されている)私の歓迎の機能につながることはありません機能を実行します。私はスコープが何とか間違っていると仮定しています(それは親スコープの代わりに隔離されたスコープを使用しています)。 - しかし、隔離されたスコープが必要です。私は間違って何をしていますか?
を
user
オブジェクトを提供したい、あなたは '$のparse'や一般的な指示を必要としますか?これが1つのコントローラの場合は、コントローラに '$ scope.greet'を定義することができます。 –ディレクティブは、それらの定義に異なるパラメータ(およびオプションの「$メッセージ」)を持っている(そうでないことも可能)複数のコントローラと「コールバック」のために使用されます。 – Stussa