简体   繁体   English

无法在Ember.service中执行余烬数据查询/剩余调用

[英]Cannot perform ember data queries/rest call inside Ember.service

I'm using ember 2.12 我正在使用余烬2.12

Here's my route 这是我的路线

import Ember from 'ember';

export default Ember.Route.extend({
    rentalService: Ember.inject.service('rentals-service'),

    model(){
        this.get('rentalService').findRentals();
        console.log('Inside route');
        console.log(this.get('store'));
        return this.get('store').findAll('rental');
  }
});

Here's my ember rental-service 这是我的灰烬出租服务

import Ember from 'ember';

export default Ember.Service.extend({
  findRentals() {
    console.log("Inside servce");
    console.log(this.get('store'));
    return "hello from servce";
  }
});

Why is it I cannot access the ember-data on the rental-service? 为什么我无法访问租赁服务上的余烬数据? whenever I console .log this.get('store') inside the rental-service it returns an undefined. 每当我在租用服务中控制台.log this.get('store') ,它都会返回未定义的内容。 However on the routes, whenever I console.log the same code it returns this value. 但是在路由上,每当我在console.log中输入相同的代码时,它都会返回该值。

Does this mean I cannot perform a rest call using ember data inside a service? 这是否意味着我无法使用服务内部的余烬数据执行剩余调用?

在此处输入图片说明

I'm using Mirage to mock a web-server/http requests 我正在使用Mirage模拟Web服务器/ http请求

You cannot access the store inside an ember component/service. 您无法访问余烬组件/服务内部的商店。 A workaround for this is to retrieve the store via dependency injection. 一种解决方法是通过依赖项注入来检索存储。

export default Ember.Service.extend({
  store: Ember.inject.service('store'),

  findRentals() {
    console.log("Inside service");
    console.log(this.get('store'));
    return "hello from service";
  }
});

Be wary if you have another service with a name of store , it might fetch that one. 请注意,如果您有另一项名为store ,则可能会获取该服务。

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

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