2016-06-24 2 views
0

Я начинаю конвертировать проект Angular 1 в Angular 2, и у меня возникают некоторые проблемы с установкой моего первого сервиса. Я настроил plunkr, который соответствует тому, что я пытаюсь сделать, и он полностью бомбит. Вот plunkr:Basic Угловой 2 Настройка службы машинописного текста

https://plnkr.co/edit/oYrg68HhTihPFAcSGU8t?p=preview

В реальном приложении я использую генератор угловую CLI и получаю следующее сообщение об ошибке:

Error: Typescript found the following errors:
/path/to/project/tmp/broccoli_type_script_compiler-input_base_path-bvDJA9MD.tmp/0/src/app/+login/login.component.spec.ts (17, 21): Supplied parameters do not match any signature of call target.

Если кто-нибудь может помочь мне получить plunkr работу, это было бы здорово!

Вот файл спецификации, если это полезно:

/* tslint:disable:no-unused-variable */ 

import { By }   from '@angular/platform-browser'; 
import { DebugElement } from '@angular/core'; 

import { 
    beforeEach, beforeEachProviders, 
    describe, xdescribe, 
    expect, it, xit, 
    async, inject 
} from '@angular/core/testing'; 

import { LoginComponent } from './login.component'; 

describe('Component: Login',() => { 
    it('should create an instance',() => { 
    let component = new LoginComponent(); 
    expect(component).toBeTruthy(); 
    }); 
}); 
+0

Кажется, конструктору 'LoginComponent' нужны некоторые аргументы? – rinukkusu

ответ

0

Here's модифицированная версия вашего plunkr, который работает для меня.

Кажется, что вам необходимо предоставить TestService, а затем передать его в свой конструктор в качестве параметра.

Обновлено приложение.

//our root app component 
import {Component} from '@angular/core'; 
import {TestService} from './test.service'; 

@Component({ 
    selector: 'my-app', 
    providers: [ TestService ], 
    template: ` 
    <div> 
     <h2>Hello {{name}}</h2> 
     <p><a (click)="logIn('test-user', '123456')">Test Login</a></p> 
     <p>{{status}}</p> 
    </div> 
    `, 
    directives: [] 
}) 
export class App { 

    constructor(
    private testService:TestService;) { 
    this.name = 'Pizza'; 
    this.status = 'Sword'; 

    } 

    logIn(username, password) { 
    this.status = this.testService.logIn(username, password); 
    } 
} 
+0

Отлично, что исправлено plunkr! Не был уверен, что мне нужно было предоставить услугу в декораторе @Component, поэтому урок там узнал. И спасибо за то, что вы уловили проблему синтаксиса с конструктором. Как оказалось, это не исправить мое фактическое приложение, но оно сузило его достаточно, чтобы я понял, что это что-то в тестовой спецификации, вызывающей проблему. Я прокомментировал спецификацию на данный момент, и теперь я снова и снова запускаю. – curiousgage

+0

@curiousgage Рад это слышать! Удачи! – Aarmora

Смежные вопросы