2017-11-25 12 views
1

저는 ember를 처음 사용하고 있는데 transitionTo를 queryParams와 함께 사용하려고 노력하고 있지만 작동하지 않습니다. 많은 솔루션을 시도했지만 무엇이 있는지 찾을 수 없습니다. 내 코드가 잘못되었습니다. 여기에 내가 사이에 전환 할 수있어 두 가지 경로에 대한 코드 :Ember TransitionTo와 queryParams가 작동하지 않습니다.

1하는 index.js를 :

export default Ember.Route.extend({ 
setupController: function(controller, model) { 
this._super(controller, model); 
controller.set("model", model); 
}, 
model() { 
    return { 
    searchQuery: "" 
    }; 
}, 
actions: { 
    search() { 
    const query = this.controller.get("model.searchQuery"); 
    this.transitionTo("/search-results", { 
    quaryParams: { 
     q: query 
    } 
    }); 
    } 
} 
}); 

2 검색 results.js :

export default Ember.Route.extend({ 
model() { 
    return { 
    fieldsInput: [] 
    }; 
}, 
setupController: function(controller, model) { 
    this._super(controller, model); 
    controller.set("model", model); 
} 
}); 

난 몰라 다른 것이 추가되어야하는지 안다. 컨트롤러에서 queryParams 설정을 시도했지만 작동하지 않습니다. 또한, 추가 시도했습니다.

queryParams: { 
    q: "" 
    }, 

검색 결과 경로에는 있지만 사용하지 말아야합니다.

답변

1

transitionTo 메서드에 대해 URL을 제공하면 queryParams를 포함하여 생성하여 전체 URL을 제공해야합니다. 작동합니다

this.transitionTo(`/search-results?q=${query}`); 

댓글에서 언급했듯이 경로에 queryParams 속성을 지정하지 않았습니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 나는 이것을 시도했고 그것도 작동하지 않았다. 쿼리 매개 변수가없는 경로로 이동합니다. – moamenezzat

+1

작동하지 않는 데는 많은 이유가있을 수 있습니다. 그러나 나는 대답에서 중요한 부분을 언급했다. 그건 사실이고 효과가있을 것입니다. 이 [twiddle] (https://ember-twiddle.com/4b358521437ddbf62be17af55e7b27ce?openFiles=routes.application.js%2C&route=%2Fsearch-results%3Fq%3DchangedValue)을 살펴보십시오. 뒤틀린 작업을 준비하지 않으면 해결하기가 쉽습니다 – kumkanillam

+0

감사합니다 :). 저주가 내게 누락 된 조각을주었습니다. 그것은 경로에 queryParms 객체를 추가하고있었습니다. 답변을 추가하여 올바른 것으로 표시하십시오. – moamenezzat

0

"search-results.js"에서는 index.js에서 파일로 전달한 매개 변수에 액세스 (모델에 알리기)해야하므로 search-results.js에서 모델이 약간 비슷해야합니다 이 :

model(param) { 
    return { 
    fieldsInput: [] 
    }; 
}, 

당신이 "fieldsInput"당신이 익숙하지 않은 경우, 위의, 당신은 엠버 - 데이터 조회 (의 일종을하고 싶은거야을 정의한 경우를 보면, 다음 시계 youtube video 또는 two, 앞으로 많은 도움이 될 것입니다.) index.js에서 전달한 "queryParam"을 사용하십시오.

(힌트 : "return this.store.findRecord(someObject, param.someProperty)는"사용할 수 있습니다 무엇 아마도) 당신은 당신이 "this.transitionTo"작성한 경우 아래 줄에 보면,

또한, 당신의 오타를했습니다 당신의 "queryParams"의 철자.

희망이 도움이됩니다.

+0

답변 해 주셔서 감사합니다. 그러나 @ kumkanillam twiddle은 나에게 실종 된 조각을 주었다. – moamenezzat