@ Inject не работает в vue с машинописью - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь внедрить службу в vue следующим образом.

в more-information.component.ts

@Inject('moreInformationService') private moreInformationService: () => MoreInformationService;

в more-information.service.ts

import axios from 'axios';
import { Store } from 'vuex';
export default class MoreInformationService {
  constructor(private $store: Store<any>) {
  }    
}

Но я получаю следующее Waring в консоли, и оно не работает должным образом

webpack-internal:///./node_modules/vue/dist/vue.esm.js:629 [Vue warn]: Injection "moreInformationService" not found

found in

---> <MoreInformation> at src/main/webapp/app/MSB/products/more-information/more-information.vue
       <BlankLayout> at src/main/webapp/app/MSB/layouts/BlankLayout.vue
         <App> at src/main/webapp/app/app.vue
           <Root>

1 Ответ

1 голос
/ 05 апреля 2020

Я забыл зарегистрировать службу, используя provide

Следующие изменения устранили мою проблему,

import MoreInformationService from '@/products/more-information/more-information.service';

new Vue({
  el: '#app',
  components: { App },
  template: '<App/>',
  router,
  provide: {
    moreInformationService: () => new MoreInformationService(store)
  },
  store
});

, если есть какая-либо лучшая опция, пожалуйста, ответьте.

...