현재 여러 입력이있는 양식이 있습니다. 이러한 입력은 쿼리 매개 변수를 채우는 데 사용됩니다. 이 라우트의 컨트롤러에서 제출 조치는 조회 매개 변수 입력을 등록하고 transitionToRoute를 사용하여 조회가 리턴하는 정보를 표시하는 중첩 된 라우트를로드합니다.EmberJS - 컨트롤러에서 중첩 경로로 쿼리 매개 변수 전달
다음은 컨트롤러의 관련 부분입니다 :
import Route from '@ember/routing/route';
export default Route.extend({
queryParams: {
dateFrom: { as: 'meddateFrom',
refreshModel:true},
dateTo: { as: 'meddateTo', refreshModel:true},
unitNumber: { as: 'medunitNumber', refreshModel:true},
customerName: { as: 'medcustomerName', refreshModel:true},
},
model(params) {
return this.get('store').query('option1api', params)
},
});
이 어떤 끔찍한 행동을 생산하고 있기 때문에 여기에 매우 잘못된 일을해야합니다 여기
import Controller from '@ember/controller';
export default Controller.extend({
queryParams: ['dateFrom', 'dateTo', 'unitNumber', 'customerName'],
dateFrom: null,
dateTo: null,
unitNumber: null,
customerName: null,
actions: {
submitQuery() {
switch (module) {
case 'Option 1 List':
this.transitionToRoute('reports.option1', {
queryParams: {
dateFrom: this.get('dateFrom'),
dateTo: this.get('dateTo'),
unitNumber: this.get('unitNumber'),
customerName: this.get('customerName'),
},
})
break;
}
중첩 된 경로입니다. URL 문자열에서 쿼리 매개 변수를 두 배로 늘립니다. 또한 입력이 변경 될 때 쿼리를 다시 실행하는 데 영향을주는 잘못된 param 업데이트 동작으로 끝납니다.
나는 queryParams가 중첩 된 라우팅 쿼리가 실행되지 않고 아무것도 생성되지 않습니다에 개체를 포함하지 않는 경우. 내가 중첩 된 경로에 queryParams 별칭을하지 않는 경우
은 내가 여러 컨트롤러에 중복 키 값을 가질 수 없음을 말해 오류가 나타납니다.
위의 queryParams 대신 paramsFor를 사용하려고 시도했으나 결과를 생성 할 수 없습니다.
다시 제출 단추를 눌러 새로운 쿼리를 시작할 수 없습니다. 이미로드 된 경로로 전환하려고하기 때문에 이것이라고 가정합니다.
컨트롤러에서 상위 경로 (reports.js)로 queryParams를 이동하는 것을 고려했지만 이해할 경우 첫 번째 인스턴스에서 queryParams를 설정하는 컨트롤러가 필요합니다.
This question 매우 유사하지만 불행히도 많은 답변을 사용할 수 없습니다.
누구나 내 큰 실수를 발견하거나 올바른 방향으로 나를 가리킬 수 있습니까? EmberJS 가이드에서 제공되는 설명서는 현재 이해하지 못했습니다.