6
指示文からコントローラのend()
メソッドへの引数を渡すにはどうすればよいですか?親コントローラメソッドへの引数を指示文から渡す
指令
var fileuploader = function() {
return {
restrict: 'E',
scope: {
onEnd: '&',
},
controller: function ($scope) {
// When upload is done
$scope.onEnd(/* file */);
}
};
}
コントローラ
module.controller('Ctrl', function ($scope) {
$scope.end = function (file) {
console.log('file', file);
};
});
テンプレート:
<div ng-controller='Ctrl'>
<fileuploader on-end='end()'></fileuploader>
</div>
これがAであれば、私も疑問に思います私はこれが他の場所で使われているのを見ることができないので、物事を行う奇妙な方法です。おそらく次の方がより角度がありますか?
指令
var fileuploader = function() {
return {
restrict: 'E',
scope: {
onEnd: '=',
},
controller: function ($scope) {
// When upload is done
$scope.file = file;
}
};
}
コントローラ
module.controller('Ctrl', function ($scope) {
$scope.$watch('file', function (val) {
console.log('file', val);
});
});
テンプレート
<div ng-controller='Ctrl'>
<fileuploader on-end='file'></fileuploader>
</div>
これは、いくつかのindirecを追加コントローラメソッドを呼び出すことはあまり前向きではありません。私の説明は超明確でない場合
[AngularJSの指令から親コントローラの呼び出し方法]の複製が可能です。(http://stackoverflow.com/questions/15991137/calling-method-of-parent-controller-from-a-directive-in-angularjs ) – Stewie
Fiddlesは常に解決プロセスを迅速化しますが、あなたの問題をあなたの 'end'関数に引き渡すか、それともあなたのためにはうまくいかないのですか? – Nix
@Nix、それは確かに私の質問でした。可能な複写は私に答えを与えた。 – Pickels