未调用angular2服务方法

未调用angular2服务方法,angular,angular2-services,Angular,Angular2 Services,我试图创建一个示例angular2服务并使用它,但我不确定我所犯的错误。组件无法调用服务方法,有关详细信息,请参阅plunker 我的服务代码如下所示 import { Injectable } from 'angular2/core'; import { HTTP_PROVIDERS, Http, Headers, Response, JSONP_PROVIDERS, Jsonp } from 'angular2/http'; import { Configuration } from './

我试图创建一个示例angular2服务并使用它,但我不确定我所犯的错误。组件无法调用服务方法,有关详细信息,请参阅plunker

我的服务代码如下所示

import { Injectable } from 'angular2/core';
import { HTTP_PROVIDERS, Http, Headers, Response, JSONP_PROVIDERS, Jsonp } from 'angular2/http';
import { Configuration } from './Configuration';
import 'rxjs/add/operator/map'
import { Observable } from 'rxjs/Observable';

///Service class to call REST API
@Injectable()
export class SampleService {
    items: Array<any>;

    constructor() {
        this.items = [
            { name: 'Test1' },
            { name: 'Test2' },
            { name: 'Test3' }
        ];
    }

    getItems() {
        return this.items;
    }
}
从'angular2/core'导入{Injectable};
从“angular2/HTTP”导入{HTTP_提供程序、HTTP、头、响应、JSONP_提供程序、JSONP};
从“/Configuration”导入{Configuration};
导入“rxjs/add/operator/map”
从“rxjs/Observable”导入{Observable};
///调用RESTAPI的服务类
@可注射()
导出类示例服务{
项目:阵列;
构造函数(){
此项。项目=[
{name:'Test1'},
{name:'Test2'},
{name:'Test3'}
];
}
getItems(){
归还此物品;
}
}

在引导应用程序时(在您的案例中,
引导(SampleComponent,[SampleService])
或在组件的提供者数组中),您需要将@Injectable服务包括在提供者数组中。有关依赖项注入的更多信息,您可以在此处阅读:

将其添加为提供程序后,无论何时将其注入类构造函数中,组件都能够解析它。阅读该链接后,您就会清楚依赖项注入树是如何工作的:)


此外,在plunkr中,您有两个组件使用相同的选择器(“my-app”),我想这也是一个错误。

使用New->Angular->2.0 TS Your's index.html页面不包含任何anuglar2代码,也没有设置为使用System.js将typescript转换为javascript。考虑下面的教程来完成缺失的Peice:注意组件文件名是“代码> SimPrimePoPo.ts 谢谢您的帮助。我按照上面建议的步骤创建了一个新的angular2应用程序,引用了CDN中所有必需的引用。仍然没有在组件中调用服务方法。我错过了什么?请参考新的plunker:我做了您建议的所有更改,仍然没有按预期工作。您能检查plunker并更正我的错误吗?干得好。。我把它分叉并更新了。。你有两个问题。第一个是在bootstrap.ts中,在依赖项数组中使用服务之前,您没有导入该服务。
import{SampleService}from./SampleService'
。其次,您从错误的位置导入了引导函数本身(您在那里使用的不是RC版本,而是beta版),并且它位于“angular2/platform/browser”的
import{bootstrap}不在
@angular/..
中。第三,ngFor中的单词
let
在beta版中不存在,所以我用#item对其进行了更改