ブートストラップモーダルの隠れたイベントに対して角度関数を呼び出す必要があります。ここで
$('#modalAddAction').on('hidden.bs.modal',
function (e) {
console.log("in hidden.bs.modal");
var $rootScope = angular.element(document.querySelector("[ng-controller=actionsController]")).scope();
if ($rootScope) {
$rootScope.$apply(function() {
$rootScope.initializeAt1();
});
}
});
は私が呼び出す必要がコントローラで定義された関数である:
$scope.initializeAt1 = function() {
$scope.data.addAction.actionTypeId; // initialized in $scope.getActionTypes
$scope.data.addAction.actionStatus = 1;
// initializers help set drop downs to appropriate selection.
$scope.data.addAction.actionType1.actionRecommendedByLerId = 0;
$scope.data.addAction.actionType1.actionsRecommendedByLer = [];
$scope.data.addAction.actionType1.actionProposedBySupervisorId = 0;
$scope.data.addAction.actionType1.actionTakenBySupervisorId = 0;
$scope.data.addAction.actionType1.actionChargeId = 0; // formerly initialized in $scope.getActionCharges
$scope.data.addAction.actionType1.actionCharges = [];
}();
コントローラの工場が実行されるので、初めて、initializeAt1ここ
は私の隠されたイベントハンドラです関数はそれ自身を呼び出し、必要な初期化を行います。
次に、保存ボタン、キャンセルボタン、または画面上をクリックするだけで、モーダルが非表示になったときに、initializeAt1を再度呼び出そうとします。
#modalAddAction - ここに隠されたイベントは、私は、このエラーを与える:
[$rootScope:inprog] $digest already in progress
は、だから今、私は(適用とだけ直接$ rootScopeから関数を呼び出しをコメントアウト)これに彼イベントハンドラを変更しよう:
$('#modalAddAction').on('hidden.bs.modal',
function (e) {
console.log("in hidden.bs.modal");
var $rootScope = angular.element(document.querySelector("[ng-controller=actionsController]")).scope();
//if ($rootScope) {
//$rootScope.$apply(function() {
$rootScope.initializeAt1();
//});
//}
});
これでエラーが発生しました。
$rootScope.initializeAt1 is not a function
私はrootScopeを持っていますが、なぜこの機能は見えませんか?
こんにちは私はあなたがvar $ rootScopeをやっていると思う。あなたは新しいオブジェクトで$ rootScopeを再割り当てしています。 –