私は始めたので、これは非常に初歩的な質問です。
私は単純な工場を持っています:
angular.module('notes', ['ngResource']).
factory('Notes_module', function ($resource) {
var Notes_items = $resource(BASE_URL + 'xxx/:method/:guid', {},
{
get_all: {method: 'GET', params: {method: 'get_all'}, isArray: true }
});
return Notes_items;
}
);
note_itemsを表示するコントローラ。
function Notes($scope, Notes_module) {
$scope.notes = Notes_module.get_all();
};
私の見解では、サーバーから新しい notes_items を取得するための簡単なボタンがあります。
<a ng-click="synchronize()">
そしてコントローラー:
function LeftBardController($scope, Queries_module) {
$scope.synchronize = function() {
$scope.notes = Queries_module.get_all_new_note();
};
}
新しいアイテムをチェックするための新しい工場:
angular.module('queries', ['ngResource']).
factory('Queries_module', function ($resource) {
var Queries_items = $resource(BASE_URL + 'xxx/:method/:guid', {},
{
get_all_new_note: {method: 'GET', params: {method: 'get_all_trash'}, isArray: true },
});
return Queries_items;
}
);
そして質問です。
「同期」ボタンをクリックすると、データベースは正常に更新されますが、ビューは更新されません。ページを更新すると、ビューも更新されます。
コントローラーの $scope を $rootScope (rootscope にメモを保存) に変更すると、必要に応じてビューが自動的に更新されますが、これは $rootScope を使用する良い方法です。どうすれば他の方法でこれを行うことができますか? $apply について読みましたが、コントローラーに追加すると機能しません。