这可能是一个愚蠢的问题,到现在为止我正在使用类似的东西。
$scope.selectEvent = function ($index, event, callback) {
// Do stuff
setTimeout(function() {
callback($scope, $http);
}, 0);
};
问题是我想在完成selectEvent函数之后才调用回调。 selectEvent函数向DOM添加内容并将一些变量添加到作用域中,我的回调使用作用域中的变量在DOM上绘制内容。显然,如果未更新DOM且未设置范围变量,则没有setTimeout
的回调会出错。
更新
假设这是在回调上调用的函数(此函数也回调另一个函数)。
function my_callback($scope, $http, callback) {
// Don't make an additional post request if it is already there
if ($scope.dataForCallback === null) {
$http.post("get_data",
{vars: $scope.data.vars}).
success(function (data) {
$scope.dataForCallback = data;
setTimeout(function() {
callback($scope);
}, 0);
});
} else {
setTimeout(function() {
callback($scope);
}, 0);
}
}