0

我正在嘗試創建其他api以獲取帖子/使用Angular 1.6和es6獲取一些數據。 並得到一個SylabusService未定義的組件未定義的servise提供商角度1.6和es6

類型錯誤:無法讀取屬性「拯救」的不確定

。服務文件

'use strict'; 
 
import angular from 'angular'; 
 

 
export function SylabusService($resource) { 
 
    'ngInject'; 
 
    return $resource('/api/sylabuss/:id', { 
 
     id: '@_id' 
 
    }) 
 
    };

。組件文件

您可以在第9行看到的,我試圖登錄,但找回不確定

'use strict'; 
 
const angular = require('angular'); 
 

 
const uiRouter = require('angular-ui-router'); 
 

 
import routes from './sylabus.routes'; 
 
import SylabusService from './sylabus.service'; 
 

 
export class SylabusComponent { 
 
    /*@ngInject*/ 
 
    constructor($scope, SylabusService) { 
 
    console.log(SylabusService); //undefined 
 
     $scope.createSylabus = function(){ 
 
     SylabusService.save($scope.newSylaBus.title, function(sylabus){ 
 
      console.log(sylabus); 
 
     }) 
 
    } 
 
    } 
 
} 
 
SylabusComponent.$inject=['$scope']; 
 
export default angular.module('aSpaApp.sylabus', [uiRouter]) 
 
    .config(routes) 
 
    .component('sylabus', { 
 
    template: require('./sylabus.html'), 
 
    controller: SylabusComponent, 
 
    controllerAs: 'sylabusCtrl' 
 
    }) 
 
    .factory('service',SylabusService) 
 
    .name;

我做錯了什麼?

回答

2

SylabusService實際上是所謂service,這樣,你注入你的依賴添加到該部分:

SylabusComponent.$inject=['$scope', 'service']; 

或(也許更好)命名服務SylabusService並注入是:

SylabusComponent.$inject=['$scope', 'SylabusService']; 
export default angular.module('aSpaApp.sylabus', [uiRouter]) 
    .config(routes) 
    .component('sylabus', { 
    template: require('./sylabus.html'), 
    controller: SylabusComponent, 
    controllerAs: 'sylabusCtrl' 
    }) 
    .factory('SylabusService',SylabusService) // <-- Name the service here 
    .name; 
+0

如果我'添加服務注入然後我得到「錯誤:[$注射器:unpr]未知的提供者:SylabusServiceProvider < - SylabusService」:( – BeckiD

+0

第三次幸運,更新的答案,你已經命名服務'服務',所以注入或重命名它。 –

+1

感謝它現在正在工作,但只有當服務功能與組件在同一個文件中時,我纔會知道如何在應用程序中註冊以下由Matthew提供給我的鏈接。再次感謝 – BeckiD