次のようなコントローラーがあります。
function controller($scope)
{
this.helper() = function()
{
// some processing
};
$scope.doSomething = function()
{
helper();
};
}
doSomething が呼び出されると、helper() が定義されていないというエラーが表示されます。helper() の呼び出しの前に「this」を配置しても機能しません。ここでの「this」はコントローラー インスタンスではなく $scope を参照するためです。
私の質問は: スコープ上の関数内からそのようなローカル ヘルパー関数を呼び出す方法はありますか? ( $scope にも helper() を配置できることはわかっていますが、ビューから呼び出されるものではなく、厳密には便利な関数であるため、むしろそうしません。)
このようにコードを構造化する理由は、単体テストから helper() 関数の個別のテストを容易にするためです。