javascript – 从Ember.js中的路由访问操作

前端之家收集整理的这篇文章主要介绍了javascript – 从Ember.js中的路由访问操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在更新以下路线:
App.SomeRoute = Ember.Route.extend({
 events: {
   getMore: function(){
     var controller = this.get('controller'),nextPage   = controller.get('page') + 1,perPage    = controller.get('perPage'),items;

     items = this.events.fetchPage(nextPage,perPage);
     controller.gotMore(items,nextPage);
   },fetchPage: function(page,perPage){
     . . . .
   }
 }
});

在很大程度上,它工作正常.但是,事件语法已被弃用.相反,我们假设使用动作.更新工作效果不错,直到我达到目标:

items = this.events.fetchPage(nextPage,perPage);

这会抛出错误

TypeError: this.events is null

不幸的是,如果我将代码更新为:

items = this.actions.fetchPage(nextPage,perPage);
=> TypeError: this.actions is null

如何从同一路径中访问操作方法

解决方法

你必须使用.send()来调用动作哈希中的函数.例:
App.SomeRoute = Ember.Route.extend({
     actions: {
       getMore: function(){
         var controller = this.get('controller'),items;

        items = this.send('fetchPage',nextPage,perPage);
         controller.gotMore(items,nextPage);
      },perPage){
        .. . .
     }
   }
});

猜你在找的JavaScript相关文章