2016-10-21 7 views
2

드롭 다운 선택 메뉴의 구성 요소를 만들고 있습니다. 메뉴에 대한 옵션을 동적으로로드 할 수 있어야합니다. 처음에는 @Input을 사용하여 원하는 컨트롤러 메서드의 URL을 전달하여 데이터를 가져 오는 것으로 생각했습니다.각도 2 - @Input으로 URL 전달하기

export class DropdownInput { 
    // List of options for the dropdown to have 
    public options: InputOption[]; 

    // Url for controller method to get options 
    @Input() optionSrc: string; 

    // Get list of options on construction 
    constructor(http: Http) { 
     http.get(this.optionSrc).subscribe(result => { 
      this.options = result.json(); 
     }); 
    } 
} 

그리고이 같은이 드롭 다운 구성 요소를 사용하려고 시도했다 : 여기에 지금까지 (간체)가 무엇

<dropdown-input 
    [optionSrc]="/api/LogViewer/GetOpts"> 
</dropdown-input 

을하지만 오류가 무엇입니까 : "파서 오류 : 예기치 않은 토큰/[/ api/LogViewer/GetOpts]의 1 열에 있습니다. 또한 " '/ api/LogViewer/GetOpts'"로 시도했지만 "SyntaxError : 예기치 않은 토큰 < JSON의 JSON.parse()"위치에서 오류가 발생합니다. 부모 클래스의 변수에 url을 넣을 때도 동일한 오류가 발생합니다.

이 작업을 수행 할 수 있습니까? 아니면 내 목표를 달성하기위한 다른 방법을 시도해야합니까?

감사합니다.

당신이 다음을 수행해야 정적 문자열을 전달되므로

답변

2

,

<dropdown-input 
    [optionSrc]="'/api/LogViewer/GetOpts'"> 
</dropdown-input> 

하는 것은 생성자는 다음과 같은 ngOnInit(),

ngOnInit() { 
     http.get(this.optionSrc).subscribe(result => { 
      this.options = result;      
      //<<<### changed this line... as suggested by StefanSvrkota 
     }); 
} 
+0

내가 가진를 사용하는 것이 좋습니다 당신을 위해 작업을 넣은 사람은 아니다 경우 공백없이 미리 시도해 보았습니다. 공백을 사용하고 불행하게도 여전히 오류가 발생합니다. "SyntaxError : JSON.parse ()의 JSON에서 예기치 않은 토큰 <". 의 출처는이 http.get의 결과를 구독하고 있기 때문에입니까? – csy9

+0

아직 보지 못한 것이 있습니다. – micronyks

+0

@ csy9 사실 json이 아니지만 json에게'result'를 구문 분석하려고하기 때문에 오류가 발생한다고 생각합니다. 'this.options = result; '를 시도해보고 작동하는지 알려주십시오. 아니면 그냥 console.log (결과); 그리고 당신이 무엇을 얻는 지보십시오. –