드롭 다운 선택 메뉴의 구성 요소를 만들고 있습니다. 메뉴에 대한 옵션을 동적으로로드 할 수 있어야합니다. 처음에는 @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을 넣을 때도 동일한 오류가 발생합니다.
이 작업을 수행 할 수 있습니까? 아니면 내 목표를 달성하기위한 다른 방법을 시도해야합니까?
감사합니다.
당신이 다음을 수행해야 정적 문자열을 전달되므로
내가 가진를 사용하는 것이 좋습니다 당신을 위해 작업을 넣은 사람은 아니다 경우 공백없이 미리 시도해 보았습니다. 공백을 사용하고 불행하게도 여전히 오류가 발생합니다. "SyntaxError : JSON.parse ()의 JSON에서 예기치 않은 토큰 <". 의 출처는이 http.get의 결과를 구독하고 있기 때문에입니까? –
csy9
아직 보지 못한 것이 있습니다. – micronyks
@ csy9 사실 json이 아니지만 json에게'result'를 구문 분석하려고하기 때문에 오류가 발생한다고 생각합니다. 'this.options = result; '를 시도해보고 작동하는지 알려주십시오. 아니면 그냥 console.log (결과); 그리고 당신이 무엇을 얻는 지보십시오. –