모두에게. 나는 Ember를 2.9.1에서 2.10으로 업데이트 한 후에 이상한 행동을 취했다. 이 업데이트 후, 링크가있는 도우미 링크를 탐색 할 때 입자 새로 고침 대신 전체 페이지 새로 고침이 발생했습니다. Ember 2.9.1에서는 입자가 새로 고쳐졌습니다. 어쩌면 나는이 업데이 트에서 뭔가를 놓쳤습니다. 여기 링크의 전체 새로 고침 페이지
내 목록에 대한 코드응용 프로그램/router.js
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: 'auto',
rootURL: '/app/'
});
Router.map(function() {
this.route('home', { path: '/' });
this.route('list', { path: '/list/:listId' }, function() {
this.route('lead', { path: 'lead/:leadId', resetNamespace: true });
});
this.route('pageNotFound', { path: '/page-not-found' });
});
컨트롤러/list.js
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['page', 'sortBy', 'direction', 'archived'],
page: 1,
perPage: 50,
sortBy: 'createdAt',
direction: 'asc',
archived: false
});
루트/list.js입니다
import Ember from 'ember';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
import RouteMixin from 'ember-cli-pagination/remote/route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin, RouteMixin, {
queryParams: {
page: {refreshModel: true},
perPage: {refreshModel: true},
sortBy: {refreshModel: true},
direction: {refreshModel: true},
archived: {refreshModel: true}
},
intercom: Ember.inject.service('intercom'),
leadLink: 'lead',
model(params)
{
var intercom = this.get('intercom');
var store = this.get('store');
var list;
params.leadLink = this.leadLink;
if (params.listId) {
list = this.store.findRecord('list', params.listId).then(function (list) {
intercom.update({
"Emails": list.get('user.discovered_emails'),
"Limit": list.get('user.max_discovered_emails')
});
return list;
});
}
else {
params.title = 'All leads';
}
return Ember.RSVP.hash({
list: list,
leads: this.store.query('lead', {
filter: this.getFilter(params)
}, { reload: true }).then(function (leads) {
params.total = leads.get('meta.total');
leads.forEach(function (lead) {
var list = store.peekRecord('list', lead.get('listId'));
lead.set('list', list);
return lead;
});
return leads;
}),
lists: this.store.peekAll('list'),
params: params
});
},
// ....
templates/components/sidebar-list-item.hb s
{{#link-to "list" list.id (query-params page=1 archived=false)}}<i class="icon-list-unordered"></i> {{list.name}} <span class="text-muted text-thin">{{#if activeLeadsCount}}({{activeLeadsCount}}){{/if}}</span>{{/link-to}}
어떤 도움을 주셔서 감사합니다.
정상적으로 보입니다. queryParams의 매개 변수를 refreshModel로 변경할 때마다이를 말합니다. refreshModel 속성을 제거하고 원하는대로 작동하는지 확인하십시오. – mk2
{refreshModel : true}를 설정하려고했지만 아무 것도 변경되지 않았습니다. 2.9.1에서 모든 것이 예상대로 작동하기 때문에 이상합니다. – Dmytro
"기사 경로 안에 들어가면 controller : articles의 category 속성을 변경하면 URL이 쿼리 매개 변수를 업데이트하게됩니다. 기본적으로 쿼리 매개 변수 속성을 변경해도 라우터가 완전히 전환되지는 않습니다 (즉, 호출 모델 훅과 setupController 등), 그것은 단지 URL을 업데이트 할 것입니다. " https://guides.emberjs.com/v2.10.0/routing/query-params/ – mk2