与Ember动画插座闲聊

时间:2014-04-14 22:20:53

标签: javascript ember.js

我正在搞乱phonegap和ember outlet动画,并遇到了一个问题,如果你有一个5标签视图,有时动画需要向左滑动,其他时候向右滑动。所以我开始写出一个我认为 工作的解决方案。

App.ApplicationController = Ember.ArrayController.extend({
  currentView: 1, // views are 1-5
  actions: {
    goToFeed: function() {
      if(this.get('currentView') == 1) {
        // do nothing
      } else {
        this.transitionToAnimated('index', {main: 'slideRight'}, function() { return App.CARDS; });
      }
      this.set('currentView', 1);
    },
    goToTopTier: function() {
      if(this.get('currentView') == 2) {
        // do nothing
      } else if(this.get('currentView') < 2) {
        this.transitionToAnimated('toptier', {main: 'slideRight'}, function() { return App.CARDS; });
      } else {
        this.transitionToAnimated('toptier', {main: 'slideLeft'}, function() { return App.CARDS; });
      }
      this.set('currentView', 2);
    },
    goToSchools: function() {
      if(this.get('currentView') == 3) {
        // do nothing
      } else if(this.get('currentView') < 3) {
        this.transitionToAnimated('schools', {main: 'slideRight'}, function() { return App.CARDS; });
      } else {
        this.transitionToAnimated('schools', {main: 'slideLeft'}, function() { return App.CARDS; });
      }
      this.set('currentView', 3);
    },
    goToFriends: function() {
      if(this.get('currentView') == 4) {
        // do nothing
      } else if(this.get('currentView') < 4) {
        this.transitionToAnimated('friends', {main: 'slideRight'}, function() { return App.CARDS; });
      } else {
        this.transitionToAnimated('friends', {main: 'slideLeft'}, function() { return App.CARDS; });
      }
      this.set('currentView', 4);
    },
    goToProfile: function() {
      if(this.get('currentView') == 4) {
        // do nothing
      } else {
        this.transitionToAnimated('index', {main: 'slideLeft'}, function() { return App.CARDS; });
      }
      this.set('currentView', 4);
    }
  }
});

通读它,对我来说很有意义,但我得到一个错误,说未定义不是一个函数。查看billysbilling的文档,我按照transitionToAnimated(name, animations, model)的说明进行了操作。

如果我可以做一个简单的{{#if view&lt; somevalue}}那么这将是完美的,但我们不能在ember中做到这一点。

有什么建议吗?

更新

所以我想到了为什么功能被识别了。这是因为this.transitionToAnimated仅在Ember.RouteEmber.ArrayController内有效。所以我解决了这个问题,但我仍然遇到错误。我会继续努力,但任何帮助都会受到赞赏。

0 个答案:

没有答案