我的angularjs控制器有问题。它就像这样
我在单击按钮时触发异步方法,此方法显示一个带有输入文本的对话框,一旦关闭对话框,该文本就会被添加到作用域数组中,但是,我第一次执行异步方法时该视图没有反映范围的变化,如果我再次点击并再次调用该函数,那么我可以看到我视图中的所有更改(包括我做的第一个更改,并没有立即看到)
这是我的示例代码
var afterUpload = function (result) {
vm.testme = result;
vm.pdfs.list.push({ systemFilename: 'test', note: 'test' });
$scope.pdfs.push({ systemFilename: 'test', note: 'test' });
}
$scope.upload = function (files) {
var modalOptions = {
closeButtonText: 'Ok',
actionButtonText: 'Accept',
headerText: 'File upload',
bodyText: 'Please type the name of the file',
modalTemplate: '/MiniSpa/app/templates/modal/file-modal.html'
};
modalService.showModal({}, modalOptions).then(function(result) {
$scope.$evalAsync(function () { afterUpload(result); });
}
有什么想法吗?
答案 0 :(得分:1)
将代码放在$ timeout内,打开对话框。它应该解决这个问题。
$scope.upload = function() {
...
$timeout(function() {
// put code here which opens dialog
}, 200);
}