2
JsInterop을 사용하여 자바 스크립트 유형을 정의하려고하지만 유형 내부에 배열 속성을 정의하는 방법을 파악할 수 없습니다.jsinterop을 사용하여 배열 속성을 정의하는 방법은 무엇입니까?
@JsType
public interface Task
{
// this works
@JsProperty String getTitle();
@JsProperty void setTitle(String title);
}
@JsType
public interface ViewModelInterface
{
// the following works
@JsProperty String getValue();
@JsProperty void setValue(String val);
// this does not work
@JsProperty Task[] getTasks();
@JsProperty void setTasks(Task[] tasks);
}
사용해야하는 특수 구문이 있습니까?
업데이트 :
나는 임시 해결책을 생각해 냈습니다. 나는 JsInterop과 함께 JNSI를 사용하려고했는데, 타입 정의가 javascript 타입이기 때문에 초기화 된 후에 그 타입의 어떤 프로퍼티도 추가 할 수있다.
는 코드는이 @JsProperty로 정의되는 것처럼 작업 속성이 자바 스크립트에서 액세스 할 수 있습니다, 여기
public class ViewModel implements ViewModelInterface
{
private String value;
public ViewModel()
{
value = "";
initTasksArray();
}
public String getValue() { return value; }
public void setValue(String val) { this.value = val; }
private native void initTasksArray()
/*-{
this.tasks =
[
{ title: 'Get high enough to grab the flag' },
{ title: 'Find the Princess' }
];
}*-/;
}
이 방법입니다. 이것은 일시적인 해결책 일 뿐이며 JsInterop이 정식으로 나올 때 더 적절한 것이 될 것이라고 확신합니다.