1

小さなAngularアプリでユーザーが作業している現在のオブジェクトを「維持」するサービスを使用しています。使用している時計が起動しないという問題が発生しましたが、その理由が正確にはわかりません。関数をウォッチ式として使用する例を複数見つけましたが、まだ機能していません。ここで、サービスとコントローラーを使用して簡単なフィドルをセットアップしました。

$scope.$watch('$foo.getCurrent()', function (nn, oo, scope) {
    scope.currentFoo = $foo.getCurrent();
});

JSフィドル

クリア ボタンは、現在のオブジェクトを「リセット」することを想定しており、$watch を介して、フォームを空の状態にリセットする必要があります。誰かが私の頭の後ろを叩いて、私が間違っていることを教えてくれませんか?

ありがとう!

4

1 に答える 1

0

フィドルを更新しました

http://jsfiddle.net/n2Bjp/37/

$watch 呼び出しの最初の引数の関数をトリガーして使用する関数にスコープが渡されるとは思わないでください。

$scope.$watch(function() {return $foo.getCurrent()}, function (nn, oo) {
    $scope.currentFoo = $foo.getCurrent();
}, true);

コントローラーのスコープで解決できるプロパティに対してのみ機能する文字列を使用する場合は、信じてください。いずれにせよ、チェックしたいものを返す最初のパラメーターとして関数を使用すると、常に機能します(チェックによって変更された場合は、これを行わないでください)。

于 2013-10-20T23:58:08.483 に答える