2016-12-02 2 views
1

.Net 코어를 사용하는 Angularjs 2 프로젝트가 있습니다. 나는 PrimeNG CRUD 작업을 수행 할 datatable 시도하고있다. 데이터베이스에서 데이터를 가져 오기 위해 API 서비스를 호출합니다. 나는 서비스의 데이터를 반복적으로 사용하는 2 개의 컴포넌트를 작성했으며 페이지에 레코드를 얻고있다. 두 번째 페이지는 PrimeNg 데이터 테이블을 사용하고 동일한 서비스를 사용하지만 아무 것도 화면에 표시되지 않습니다. F12를 사용하여 코드를 디버깅 할 때 오류가 표시되지 않으면 서비스 호출이 적절한 데이터를 반환하고 있습니다. 그러나 dom 객체에서는 생성되는 데이터가 없습니다. 첨부 는 HTML 및 TS 파일에 대한 코드입니다 페이지에 PrimeNG 그리드가 표시되지 않고 오류가 발생하지 않습니다

프로젝트 세부

<p-dataTable [value]="projects" selectionMode="single" [(selection)]="selectedProject" (onRowSelect)="onRowSelect($event)" [paginator]="true" rows="3" [responsive]="true"> 
    <header>CRUD for Projects</header> 
    <p-column field="id" header="Id" [sortable]="true"></p-column> 
    <p-column field="projectcode" header="Code" [sortable]="true"></p-column> 
    <p-column field="projectname" header="Description" [sortable]="true"></p-column> 
    <p-column field="fkclient" header="Client Id" [sortable]="true"></p-column> 
    <p-column field="clientcode" header="Client Code" [sortable]="true"></p-column> 
</p-dataTable> 

는 TS

export interface ProjectDetails { 
    id: number; 
    projectcode: string; 
    projectname: string; 
    fkclient: number; 
    clientcode: string; 
} 

내가 생각하는 것은

import {OnInit, Component } from '@angular/core'; 
import { Http } from '@angular/http'; 
import {DataTableModule, SharedModule, DataTable, Column} from 'primeng/primeng'; 
import {Header} from 'primeng/primeng'; 
import {Footer} from 'primeng/primeng'; 
import {ProjectDetails} from './ProjectDetails'; 

@Component({ 
    selector: 'fetch-data', 
    template: require('./fetchdata.component.html') 
}) 
export class FetchDataComponent implements OnInit { 

    newProject: boolean; 

    public projects: ProjectDetails[]; 

    constructor(private http: Http) { 
    } 

    ngOnInit() { 
     this.http.get('http://localhost:53447/api/project/').subscribe(result => { 
      this.projects = result.json(); 
     }); 
    } 
} 

ProjectDetails 도메인 모델 파일이 어떤 이유 웹팩에 대한 내 dist 폴더에 PrimeNG 관련 파일을 포함하지 않습니다. 실제로 수동으로 CSS 파일을 복사해야했지만 다른 파일을 이동해야하는지 잘 모르겠습니다.

답변

1

DatatableModule을 AppModule로 가져 왔습니까?

@NgModule({ 
    imports: [ 
     BrowserModule, 
     FormsModule, 
     DatatableModule 
    ], 
    declarations: [ 
     AppComponent 
    ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 
+0

안녕하세요, 저는 데이터 테이블을 사용하는 모듈에서 가져 오기 기능을 사용하고 있습니다. 그렇지만 위에 언급 한 바와 같이 가져 오기 기능을 AppModule에 추가했습니다. 이제 다른 오류가 발생합니다. –

+0

요청을 처리하는 중 처리되지 않은 예외가 발생했습니다. 예외 : Node 모듈에 대한 호출이 오류로 인해 실패했습니다. ReferenceError : 이벤트가 Object에서 at C : \ Vishal \ CBIAWeb \ node_modules \ primeng \ components \ button \ button.js : 119 : 42 에 정의되지 않았습니다. at Module._compile (module.js : 409 : 26) at Object.Module._extensions..js (C : \ Vishal \ CBIAWeb \ node_modules \ primeng \ components \ button \ button.js : 174 : (Module.js : 416 : 10) at Module.load (module.js : 343 : 32) Function.Module._load (module.js : 300 : 12) at Module.require (module.js : 353 : 17) at require (internal/module.js : 12 : 17) at Object.

+0

분명히 페이지의 일부 버튼에 문제가 있다고합니다. 귀하의 원래 문제에 관해서는 대표되지 않으므로 지금 당장 당신을 도울 수는 없습니다. "이벤트"또는 "이벤트"변수를 사용하여 모든 소스 코드를 확인하십시오 ... 또한 모든 곳에서 primeng 모듈을 가져 왔는지 확인하십시오 –