javascript - Ember.js - 无法使用 this.transitionTo

标签 javascript cordova ember.js phonegap-plugins

我将 Ember.js 与 Phonegap 相结合,在这里您可以看到 Confirm API。但问题是我无法从这个事件驱动函数 onConfirm..

执行 this.transitionTo('index')

有什么想法吗?

  App.MainRoute = Ember.Route.extend({
        actions:{
            abort: function(){
                navigator.notification.confirm(
                    'Sind sie sicher ? ', 
                     onConfirm,            
                    'Abbrechen',          
                    ['NEIN','JA']     
                );
                function onConfirm(buttonIndex) {
                    if (buttonIndex == 2){
                        this.transitionTo('index');
                    }                
                }

               //this.transitionTo('index');
            }
        }
    })

最佳答案

可变范围。 this 作用于您的 onConfirm 函数,但您需要将它作用于外部上下文:

function onConfirm(buttonIndex) {
  if (buttonIndex == 2){
    this.transitionTo('index');
  }                
}.bind(this) // <-- scope "this" so you can transition

如果您需要旧版浏览器支持,您也可以这样做:

var _self = this;
function onConfirm(buttonIndex) {
  if (buttonIndex == 2){
    _self.transitionTo('index');
  }                
}

关于javascript - Ember.js - 无法使用 this.transitionTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22519963/

相关文章:

javascript - 单元测试 react Action - browserHistory 未定义

javascript - 无法访问或使用Node的fs模块

javascript - 在 Ionic Framework (Phonegap) 中的 View 之间存储变量的正确方法

ember.js - 如何定义一个作用于 Ember.ArrayController 的 itemController 的 Ember.computed 助手?

javascript - 如何从 JSON XHR 请求获取数据以在我的模板中使用?

ember.js - emberjs Handlebars 模板中的不同渲染技术

javascript - anchor 回页面并打开内容

javascript - javascript 中的 C# 只执行一次

javascript - 滚动时点击 Phonegap 移动应用程序会选择不正确的项目

ios - jQuery Mobile 页面内容在第一次访问时未加载