找不到名称'标题'。在角2

时间:2016-07-12 12:20:23

标签: angularjs typescript

enter image description here 我正在处理角度2.这是我的ts文件我在构造函数中调用了getRandomQuote()方法。 但是当我运行项目时,我得到以下错误: - 找不到名称'标题'。你的意思是实例成员' this.headers'?

import {Component, ViewEncapsulation, Injectable} from '@angular/core';
import {PaginatePipe, PaginationControlsCmp, PaginationService} from 'ng2-pagination';
import { Http, Response, Headers,RequestOptions } from 'angular2/http';
import {BasicTablesService} from './basicTables.service';
import {BaCard} from '../../../../theme/components';
import {HoverTable} from './components/hoverTable';
import {BorderedTable} from './components/borderedTable';
import {CondensedTable} from './components/condensedTable';
import {StripedTable} from './components/stripedTable';
import {ContextualTable} from './components/contextualTable';
import {ResponsiveTable} from './components/responsiveTable';

import {AuthHttp, AuthConfig, AUTH_PROVIDERS } from 'angular2-jwt';
import {HTTP_BINDINGS} from 'angular2/http';



@Component({
  selector: 'basic-tables',
  viewProviders: [PaginationService],
  pipes: [PaginatePipe, ResponsiveTable, ContextualTable],

  encapsulation: ViewEncapsulation.None,
  directives: [BaCard, HoverTable, BorderedTable, CondensedTable, StripedTable, ContextualTable, ResponsiveTable, PaginationControlsCmp,HTTP_BINDINGS],
  styles: [require('./basicTables.scss')],
  template:  `

<todo-search></todo-search>

<table class="table table-hover">

<div >Enter ID: <input type="text" #listFilter (keyup)="0" style="color:black"  /></div> <div>Alert on click<button (click)="clicked()" style="color:black">Click</button></div>
<span>{{ test }}</span>
    <tr class="black-muted-bg">

      <th class="align-left">ID</th>
      <th class="align-left">Name</th>
      <th class="align-left">Protocol</th>
      <th class="align-left">Inbound Business Process</th>
      <th class="align-left">Outbound Business Process</th>

    </tr>
        <tbody>
          <tr *ngFor="let item of randomQuote  | paginate: { itemsPerPage: 20, currentPage: p } | ResponsiveTable:listFilter.value ">
        <td>{{item.connectionId}}</td>
       <td>{{item.name}}</td>
        <td>{{item.protocol}}</td>
        <td>{{item.inBoundBPName}}</td>
         <td>{{item.outBoundBPName}}</td>


    </tr>
</tbody>
        <pagination-controls (pageChange)="p = $event" #api></pagination-controls>
    </table>

  `,
  providers: [BasicTablesService]
})
export class BasicTables {




    public body = JSON.stringify(
    {
    "startIndex": 0,
    "numofIds": 15,
    "programId": null,
    "emailId":"admin@justransform.com",
    "searchStr":"",
    "transactionId":"",
    "status":"",
    "srcConnectionName":"",
    "destConnectionName":"",
        "inBoundBPName":"",
        "outBoundBPName":"",
        "fileContent":""
     }

);

    public headers = new Headers({ 'Content-Type': 'application/json' });
    public options = new RequestOptions({ headers: headers }); 
    private url = 'http://uat.justransform.com:8080/justransform/transaction/find?sortByColumn=transactionId&sortByOrder=Desc';




  randomQuote:Array<any> = [];
getRandomQuote() {
  this.http.post(this.url, this.body, this.options)
    .map((res:Response) => res.json())
    .subscribe(  
      data => {this.randomQuote = data},
      err => this.logError(err), 
      () => console.log('Random Quote Complete')

    );

} 

logError(err) {
  console.error('There was an error: ' + err);
}
  clicked(event) {
  alert("Alert");

  }


  constructor(public http: Http) {

  this.getRandomQuote();

  }
}

1 个答案:

答案 0 :(得分:3)

您的代码在类上下文中定义headers属性,然后尝试使用headers直接访问它。

public headers = new Headers({ 'Content-Type': 'application/json' });
public options = new RequestOptions({ headers: headers }); 

您获得的错误消息明确告诉您要尝试的内容:

  

找不到名称'标题'。你的意思是实例成员'this.headers'吗?

这是因为您在类上下文中定义了headers。要正确访问它,您必须使用this.headers

public options = new RequestOptions({ headers: this.headers });
//                                             ^ here

有关详细信息,请参阅TypeScript Classes