私と一緒にいてください - 私はAngularJS newbです。Ionic/AngularJS - コントローラ付きグローバルモーダル
私は自分のアプリのどこからでも利用できるようにするためのフォームを用意しています。私はそれをコード化する方法を理解しようとしています。私の現在の試みは、このように、サービスへのモーダルを置くことです:
.service('NewObjectService', function() {
var svc = this;
svc.showModal = function() {
$ionicModal.fromTemplateUrl('template.html', {
scope: null, // what should I do here?
animation: 'slide-in-up'
}).then(function(modal) {
svc.modal = modal;
modal.show();
});
}
})
.controller('NewObjectController', function() {
$scope.$on('$ionicView.enter', function() {
console.log('NewObjectController');
// setup new object
})
})
次にどこにでも私のアプリでから、私はNewObjectService.showModal()
を呼び出すことができますし、モーダルがポップアップ表示されます。その部分は機能しています。
私が実行している問題は、コントローラを起動できないため、初期化が呼び出されず、新しいオブジェクトがnullになることです。
NewObjectController
の範囲から実際にモデムを呼び出す必要があるようですが、私はそれを試みましたが、他のコントローラ - そのため、サービス内のそのコントローラを呼び出す方法を理解できませんでした。
私は根本的に何かをやっているだけですが、私はそれが何であるか分かりません。どんな助け?
アップデート:私もちょうどルートスコープブロードキャストを使用してから別のコントローラを呼び出してみました:
.controller('MainCtrl', function() {
this.showModal = function() {
$rootScope.$broadcast('new_object:show_modal');
}
})
.controller('NewObjectCtrl', function() {
$rootScope.$on('new_object:show_modal', function() {
// show modal
})
})
私はそこに実行している問題はNewObjectCtrlがMainCtrlの実行時に呼び出されていないことです、ブロードキャストイベントを捕捉しません。
(から)多分[本](http://stackoverflow.com/questions/15618213/how-再利用 - 1つのコントローラの2つの異なるビュー)は役に立ちます – uzilan
それは私が扱っているよりも別の問題のようです。私はコントローラを共有しようとはしていない。 –