AngularJSでデータバインドが効かないときは $scope.$apply
こんにちは。
AngularJS でデータバインドが効かず、少々ハマってしまったのでメモ。
コントローラの外やそもそも AngularJS とは関係のない外部ライブラリのコールバックの中等で $scope の値を変更しても View に反映されません。
$scope.$apply() を使って、データバインドを更新する必要があるんですね( $rootScope.Scope のドキュメントはこちら )。
下記記事が非常に分かりやすく AngularJS の理解が深まりました。
- AngularJS and scope.$apply — Jim Hoskins
- AngularJS and scope.$apply(日本語訳) - Qiita
- AngularJS のデータバインドを支える $apply - AngularJS Ninja
データバインド周りの関連事項としては、$watch も押さえておきたいところです。