0
我正在使用AngularJS,如下uibModal框架:如何強制在AngularJS一個uibModal對話框重新渲染
vm.openTotalScore =() => {
$uibModal.open({
templateUrl: 'app/modules/scoreforms/cost/scoreform.html',
scope: $scope,
controller: 'CostScoreFormController',
controllerAs: 'vm',
backdrop: 'static',
resolve: {
rankingSettings: function() {
return vm.rankingdata;
},
score: function() {
return vm.risk.TotalScore;
},
costScoringData: function(ScoreFormService){
var fields = vm.risktitle.split(' ');
return ScoreFormService.getCostScoringData(vm.state.params.riskId, vm.impacttypename, fields[0]);
},
currencysymbol: function() {
return vm.currencysymbol;
}
}
}).opened.then(function(success){
});
}
,並打開模式窗體時,我需要能夠觸發重新渲染模態窗體上的圖形元素。我正在使用DevExpress DevExtreme控件,並且在刷新/調整頁面大小之前,其中一個控件無法正確繪製。他們告訴我,一旦形式可見,我需要對其進行控制。但是,我不確定如何從打開表單的控制器執行此操作。
我能想到做到這一點的唯一方法是,以某種方式告訴控制器表單現在已打開並且表單可以重新呈現。
另一種方法是讓控制器自動知道窗體現在可見,但我不知道如何做到這一點。
我將uibModalInstance傳入控制器,如下所示,因此我可以在那裏處理已打開的promise嗎?
constructor($state, $scope, $translate, $stateParams, $filter, $uibModalInstance, logger, rankingSettings, score, costScoringData, currencysymbol) { //, score)
{
'ngInject';
var vm = this;
vm.logger = logger;
vm.state = $state;
vm.translate = $translate;
vm.logger = logger;
vm.submitted = false;
vm.modelInstance = $uibModalInstance;
vm.costScoringData = costScoringData;
vm.rankingSettings = rankingSettings;
vm.score = score;
vm.currencysymbol = currencysymbol;
vm.cancel = function() {
vm.modelInstance.close();
};
this.getOptions();
this.loadGridData();
this.showDevExtremeGrid();
}
點上的控制器 - 你是一個生命的救星!作品款待 –
很高興幫助你:) – Lados