0

編集:

タイトルにある質問は以下のように正解ですので、その方法を知っていただくために、以下の回答を残しておいたほうがいいと思います。

私が使用しているフレームワークは、ここでAngularの変数からキャメルケースへの規則を完全に抽象化していないことがわかりました。ここだけでなく、他のほとんどの場所で抽象化されており、すべてが機能するようになったため、再描画を強制する必要はまったくありません。誰かがそうするなら、以下の答えを見てください。:)

4

1 に答える 1

7

コントローラー内ではなく、ディレクティブ内でイベントバインディングを行います。$apply()一部のモデルに変更を加え、それらの変更をディレクティブの外に反映させたい場合は、ディレクティブ内から呼び出す必要があります。

myApp.directive('someDir', function () {
    return {
        restrict: 'E',
        scope: {
            model: '=',
        },
        link: function (scope, elt, dirs) {
            elt.bind('click', function () {
                scope.$apply(function () {
                    // make changes to scope.model
                });
            });
        }
    }
});
于 2013-01-18T14:52:55.183 に答える