InMemoryWebApi: Angular 2 RC6 + Webpack. Не удается разрешить все параметры для InMemoryBackEndService
Я не могу понять, почему я не могу получить макет данных в inMemoryWebApi. Я сделал все настройки хорошо, через angular.io, но я все еще получаю ту же ошибку. Даже когда я удаляю URL и оставляю пустое место, ошибка та же.
Ошибка:
Error: Can't resolve all parameters for InMemoryBackendService: (?, ?).
Я использую веб-пакет, возможно, это причина. Должен ли я объявить где-нибудь в Webpack, конфигурации для inMemoryWebApi? Или, может быть, в helpers.js?
Я добавил его в vendor.ts, который занял webpack.common.js
Vendor.ts:
// Angular 2
import '@angular/platform-browser';
import '@angular/platform-browser-dynamic';
import '@angular/core';
import '@angular/common';
import '@angular/http';
import '@angular/router';
import 'angular2-in-memory-web-api';
import 'reflect-metadata';
// RxJS
import 'rxjs';
//Other vendors
import 'bootstrap-css-only';
Helpers.js:
var path = require('path');
var _root = path.resolve(__dirname, '..');
function root(args) {
args = Array.prototype.slice.call(arguments, 0);
return path.join.apply(path, [_root].concat(args));
}
exports.root = root;
AppModule:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule, JsonpModule } from '@angular/http';
import { AlertModule, DatepickerModule } from 'ng2-bootstrap/ng2-bootstrap';
// Imports for loading & configuring the in-memory web api
import { InMemoryWebApiModule } from 'angular2-in-memory-web-api';
import { InMemoryData } from './in-memory-data';
import { AppComponent } from './app.component';
import { AppService } from './app.service';
import { routing } from './app.routing';
@NgModule({
imports: [
BrowserModule,
AlertModule,
FormsModule,
HttpModule,
DatepickerModule,
InMemoryWebApiModule.forRoot(InMemoryData)
//routing
],
declarations: [AppComponent],
providers: [
AppService
],
bootstrap: [AppComponent]
})
export class AppModule {
}
webpack.common:
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var helpers = require('./helpers');
module.exports = {
entry: {
'polyfills': './src/polyfills.ts',
'vendor': './src/vendor.ts',
'app': './src/main.ts'
},
resolve: {
extensions: ['', '.js', '.ts']
},
module: {
loaders: [
{
test: /\.ts$/,
loaders: ['ts', 'angular2-template-loader']
},
{
test: /\.html$/,
loader: 'html'
},
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/,
loader: 'file?name=assets/[name].[hash].[ext]'
},
{
test: /\.css$/,
exclude: helpers.root('src', 'app'),
loader: ExtractTextPlugin.extract('style', 'css?sourceMap')
},
{
test: /\.css$/,
include: helpers.root('src', 'app'),
loader: 'raw'
},
{
test: /\.scss$/,
exclude: helpers.root('src', 'app'),
loaders: ['raw', 'sass']
}
]
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: ['app', 'vendor', 'polyfills']
}),
new HtmlWebpackPlugin({
template: 'src/index.html'
})
]
};
InMemoryData:
import { InMemoryDbService } from 'angular2-in-memory-web-api';
export class InMemoryData implements InMemoryDbService {
createDb() {
let memcache = {
id: 1,
cif: "11676096",
name: 'Barbara'
};
return { memcache }
}
}
Обслуживание:
import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import { OfferModel } from './app.offers.model';
import { MemcacheModel } from './app.memcache.model';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class AppService {
private memcacheUrl = "app/memcache";
constructor( public http: Http ) {
}
getMemcache(): Promise<MemcacheModel> {
return this.http.get( this.memcacheUrl )
.toPromise()
.then( response => response.json().data as MemcacheModel )
.catch( this.handleError );
}
handleError( error: any ) {
console.log( 'An error has occured: ', error );
return Promise.reject( error.message || error );
}
}
В прошлый раз я использовал systemJS, где был настроен in-memory-web-api. Пожалуйста, для подсказки, как исправить эту ошибку, и двигаться вперед с ней.
Спасибо и всего наилучшего Bosper
1 ответ
Та же ошибка и никакого решения при попытке реализовать in-memory-web-api с Angular2 Webpack Starter!