0
私のアプリでは、ある文書を削除できる特定のユーザ文書の詳細を表示するページと、最近閲覧したユーザを示す別のページがあります。私はそれを作るようにしようとしているので、ユーザがビューページ内のドキュメントを削除すると、ユーザが最近閲覧したドキュメント履歴のリストも削除されます。
2つのモジュール間の通信に$ broadcastと$ rootScopeを使用しようとしていますが、私は構文に何か間違っていると思われます。スコープやプロジェクト構造に問題があります。
ここにあなたのrootScope注入は、あなたの罰金であることを考えると
history.js
//gets the selected item the user clicks and deletes it and updates history
$scope.removeFavorite = function(item) {
var items = $scope.recent[item.type];
item = items.splice(items.indexOf(item), 1)[0];
$rootScope.$on('deleteRecent', function(data) {
historyManager.remove(data);
});
historyManager.remove(item).then(loadHistoryItems, loadHistoryItems);
};
documentView.js
//confirmation that user wants selected document deleted
function confirmDelete() {
var delObj = _.pick(sDocument, 'Doc_Type', 'Doc_Num');
repos
.sDoc
.del(delObj);
var item = sDocument.Doc_Type + ';' + sDocument.Doc_Num;
$rootScope.$broadcast('deleteRecent', item);
tabBarViewModel.removeTabByState($state.get('sDocument'), delObj);
$scope.modalOptions.hide();
}
あなたはモジュールを言うとき、あなたはコントローラを意味するのですか?そして、そうであれば、なぜサービスがAnglesJSの意図する通信手段である場合に、サービスの代わりにイベントを使用していますか? –
'$ broadcast'を使うのは悪い習慣です。可能であれば私はそれを避けるだろう。 – Jax
私はコントローラを使用しています、私はお詫びします、私はまだAngularにはかなり新しいです。ですから、私が呼んでいる$ブロードキャスト機能の代わりに動作するサービスを作成する必要がありますか? – essenbsa