-1
我需要在引導模式的隱藏事件上調用Angular函數。
這裏是我的隱藏事件處理程序:
$('#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 ..你重新分配$ newScope與新的對象..它沒有任何意義 –