我有一个问题,因为我需要在关闭ui-bootstrap模式时执行一个方法(并且已完成动画)。我不知道如何正确地写下这个承诺。我到目前为止(在TypeScript中):
public open(attrs, opts) {
var scope = this.rootScope.$new();
angular.extend(scope, attrs);
opts = angular.extend(opts || {}, {
backdrop: false,
scope: scope,
templateUrl: 'splash/content.html',
windowTemplateUrl: 'splash/index.html'
});
this.modalInstance = this.modal.open(opts);
this.modalInstance.result.then(
function() {
console.log("1");
},
function() {
console.log("2");
},
function() {
console.log("3");
});
}
public close() {
if (this.modalInstance != null && this.modalInstance != undefined) {
this.modalInstance.close();
}
}
我已经尝试将.result附加到close方法但显然没有退出:似乎只有open方法返回一个promise。谁能帮我吗?只有" 1"在控制台中显示,我认为这是公开的决心。
答案 0 :(得分:0)
angular-ui-bootstrap模态结果属性返回您发现的promise。如果模态被关闭(确认/是),则承诺得到解决,但如果模态被解除则承诺被拒绝(单击模态/取消之外)。
如果你想在模态关闭后调用多个函数,你可以用额外的.then()调用来链接它们。
您可以使用.catch()查看该模式是否已取消/解除。
def unqueue():
while not queue.empty():
myList = queue.get()
for i in myList:
if not i.boolean:
break
i.boolean = False
i.save() # <== error because database table is locked
queue.task_done()
queue = Queue()
thread = Thread(target=unqueue)
thread.start()
def addToQueue(pk_list): # can be called multiple times simultaneously
list = []
for pk in pk_list:
list.append(MyModel.objects.get(pk=pk))
queue.put(list)