Angularjs 无法将角度ui模式值更新回调用者屏幕
我试图在单击列表中的元素时调用angularUI模式。我可以成功加载模式,更改模式中的值,然后返回调用者屏幕。但我不知道如何更新来电屏幕上的列表。我尝试了各种方法,比如更新调用方屏幕控制器的init()方法,但在模式关闭时没有调用。我试图在控制器中指定为变量,但也不起作用。我的猜测是,在下面的方法中需要做一些事情Angularjs 无法将角度ui模式值更新回调用者屏幕,angularjs,modal-dialog,angularjs-scope,Angularjs,Modal Dialog,Angularjs Scope,我试图在单击列表中的元素时调用angularUI模式。我可以成功加载模式,更改模式中的值,然后返回调用者屏幕。但我不知道如何更新来电屏幕上的列表。我尝试了各种方法,比如更新调用方屏幕控制器的init()方法,但在模式关闭时没有调用。我试图在控制器中指定为变量,但也不起作用。我的猜测是,在下面的方法中需要做一些事情 modalInstance.result.then(函数(personModified){ $log.info('personModified='+personModified.na
modalInstance.result.then(函数(personModified){
$log.info('personModified='+personModified.name+'完成时间:'+new Date());
},函数(){
$log.info('Modal disposed at:'+new Date());
});
};
在打开模式时,将数组元素索引与当前元素一起传递,如modalCtrl.open('lg',person,$index)
,当模式调用成功时,我们可以更新该特定索引的this.people
数组
HTML
<div ng-repeat="person in modalCtrl.people">
<a ng-click="modalCtrl.open('lg', person, $index)" class="undecorated-link">
<p class="text-center">{{person.name}}</p>
</a>
</div>
希望这能对你有所帮助,谢谢。@pankajparker你需要和其他人解决这个问题。我遇到了一个问题,他提出了这个解决方案。现在你正试图反对这个解决方案。我想更新列表,除非单击“确定”,否则不会更新列表。你能告诉我怎么做吗?stackoverflow.com/questions/28779317/issue-in-scope-sharing-with-angularjs-modal/28780175#28780175@SaurabhGupta我的错,现在看看最新的答案。@pankajparker:看来你搞定了,我的朋友。谢谢你的帮助@我想我还没有资格投票。这样做需要15个声誉:(@SaurabhGupta谢谢.)你做到了:p
modalCtrl.open = function(size, selectedPerson, index) {
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
size: size,
scope: $scope,
resolve: {
person: function() {
return angular.copy(selectedPerson);
}
}
});
modalInstance.result.then(function(personModified) {
$log.info('personModified = ' + personModified.name + ' Finished at: ' + new Date());
modalCtrl.people[index] = personModified;
}, function() {
$log.info('Modal dismissed at: ' + new Date());
});
};