路由转换前验证Ember对象

时间:2016-09-12 09:23:53

标签: validation ember.js

我在设置页面上有一个包含多个对象的ember应用程序。它们有一组验证,我称之为各种要点。

我还有一个余烬{{link-to}}帮助器,允许用户转换到结果页面。

在我允许用户转换到结果页面之前,我想确保我的对象有效。

在Ember 2.0+中,我能够将一个函数绑定到一个按钮而不是使用{{link-to}}帮助器,并且该函数可以验证并调用transitionToRoute

由于某些第三方样式问题,我不得不将ember版本降级为1.1并恢复使用{{link-to}}帮助程序。做这个的最好方式是什么?在较老的灰烬?

有没有办法在{{link-to}}助手转换之前调用函数?我似乎无法找到一个。

1 个答案:

答案 0 :(得分:2)

我推荐willTransition。

App.FormRoute = Ember.Route.extend({


actions: {
    willTransition: function(transition) {
      if (this.controller.get('userHasEnteredData') &&
          !confirm("Are you sure you want to abandon progress?")) {
        transition.abort();
      } else {
        // Bubble the `willTransition` action so that
        // parent routes can decide whether or not to abort.
        return true;
      }
    }
  }
});

https://guides.emberjs.com/v1.10.0/routing/preventing-and-retrying-transitions/