app.controller('myController', [
'$scope', function ($scope) {
$scope.doSum = function(x, y){
console.log(x+y);
};
}
]);
<cmp data-fn="doSum(x, y)"></cmp>
app.directive('cmp', function(){
return{
templateUrl: 'ui/cmp.html'
,
replace: true
,
scope: {
dataFn: '&'
}
,
controller: ['$scope' function($scope){
var v = $scope.dataFn({x: 1, y: 2});
console.log(v);
}
]
}
});
関数をコントローラからanglejs 1.5のディレクティブに渡そうとしています。すべてのチュートリアルによると、これはその方法です。しかし、私はそれを働かせることはできません。手伝ってくれませんか?関数はまったく渡されず、結果は未定義になります。ディレクティブへの関数の渡し方anglejs 1.5
結果を返す必要があり、あなたの 'doSum'機能' X + y'代わりにコンソールログを行うの – floribon
なぜ呼び出します 'doSum'オブジェクトの仕事で? '$ scope.dataFn(1,2)'の代わりに '$ scope.dataFn({x:1、y:2})'を呼び出すことに注意してください。 –
@MikeMcCaughanこれは、式のバインディングにローカル値を渡す正しい方法です(xとyをhtmlで利用可能にします)。 – floribon