简体   繁体   English

从Ember.js中的余烬服务过渡

[英]transition from ember service in Ember.js

generateDeviceCode(response) {
  let {
      encryptedactivationmessage,
      macvalueactivationmessage,
      encryptioncounter
  } = response.registerDetails;

  let softtoken = this.get('softtoken');

  softtoken.callSoftTokenService(
          'generateDeviceCode',
          macvalueactivationmessage,
          encryptedactivationmessage,
          encryptioncounter
      )
      .then(response => {
          let {
              deviceCode
          } = response;
          let userId = this.get('userId') || this.get('userPreference.userId');
          let groupId = this.get('groupId') || this.get('userPreference.groupId');

          let payload = {
              deviceCode,
              authorizationCode: this.get('memoizedFields.authorizationCode'),
              tokenSerialNumber: this.get('memoizedFields.tokenSerialNumber'),
              userId,
              groupId,
              notificationId: 'NA'
          };

          this.navigation.toRoute('digital.pinRegistrationFlow', {
              queryParams: {
                  initialState: 'setPin',
                  data: payload
              }
          });
      })
      .catch(err => {
          Logger.error(err);
      });
 },

When I try to go to ember route from ember service. 当我尝试从炭烬服务转到炭烬路线时。 I get the following error Cannot read property toRoute of undefined . 我收到以下错误, Cannot read property toRoute of undefined But when I try the same code in the controller it works fine. 但是,当我在控制器中尝试相同的代码时,它可以正常工作。 Can anyone help me here please ? 有人可以帮我吗?

If you are on a current-ish version of Ember you can inject the router as a service and use it to transition. 如果您使用的是最新版本的Ember,则可以将路由器作为服务注入并使用它进行过渡。

export default Ember.Service.extend({
     router: Ember.inject.service(),
     actions: {
         doIt() {
             this.get('router').transitionTo('somewhere');
         }
     }
}); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM