我有两个功能。
单击“关闭”按钮时,会隐藏一个模态 另一个函数向右滑动并将模态更改为另一个状态/视图。
当用户滑动到新状态时,我遇到了模式NOT'隐藏'的问题。我可以看到它有效,但模态仍在显示,我认为解决这个问题的最佳方法是链接我的两个函数?这是正确的术语吗?
两个功能..
隐藏模态
$scope.closetripInfo = function() {
$scope.modal.hide();
};
SWIPES有权透露新的.state
$scope.onSwipeRight = function() {
$state.go('app.current-trip');
}
这有效!但..
我想要做的是将令人兴奋的closetripInfo
函数插入到onSwipeRight
中,如此:
$scope.onSwipeRight = function() {
$scope.closetripInfo();
$state.go('app.current-trip').closetripInfo();
}
它有效,但它看起来不对我,我收到错误..我没有成功地做到这一点。也许不那么简单。我还认为我可能需要了解承诺等最佳实践?
错误
TypeError:$ state.go(...)。closetripInfo不是函数 在Scope。$ scope.onSwipeRight
非常感谢任何建议或资源。谢谢!
答案 0 :(得分:4)
您可以使用AngularJS承诺异步运行函数。 AngularJS中的承诺由内置的$q
服务提供。您可以阅读here。
$scope.onSwipeRight = function() {
var deferred = $q.defer();
deferred.resolve('res');
$state.go('app.current-trip');
// We return a promise
return deferred.promise;
}
onSwipeRight().then(function(res) {
// Success callback
$scope.closetripInfo();
},null);