ben*_*zra 5 jquery angularjs cordova
单击时我有一个按钮我执行此功能:
$scope.sendPolicy = function(){
// make server request and called this call back:
navigator.notification.alert(
"message",
function(){
$state.transitionTo('main', {
Id: $scope.Id
});
},
'title',
'confirm');
Run Code Online (Sandbox Code Playgroud)
弹出警报确定,但单击确认按钮时,警报会消失,就是这样.没有其他事情发生(应该触发向主屏幕的过渡.)在警报被解除后,如果再次点击导致警报弹出的按钮,视图/页面传输正在被触发,我们回到主要页面,以及警报再次弹出.
问题是:
我认为这是在角度范围之外获得确认时角度不更新的问题。看来您可能需要手动运行摘要/应用,以便 Angular 可以更新范围。
当再次单击按钮时,Angular 正在运行更新,现在范围具有转换信息,但它也会再次调用警报,因为这将是一个单独的单击事件。
为了解决这个问题,我认为你需要在某个时候调用 $scope.apply() ,如下所示:
$scope.sendPolicy = function(){
// make server request and called this call back:
navigator.notification.alert(
"message",
function(){
$state.transitionTo('main', {
Id: $scope.Id
});
if(!$scope.$$phase){$scope.$apply();}
},
'title',
'confirm');
Run Code Online (Sandbox Code Playgroud)
或者在警报函数结束时调用它。
注意:您可以将其称为 $scope.$apply(),但是如果摘要已经在进行中,这可能会引发错误,因此调用此方法的安全方法是 if(!$scope.$$phase){$scope .$apply();} 仅在未进行时才调用。
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |