Javascript 使用链接查询参数子表达式的Ember.js
我正在使用链接到帮助器中的查询参数进行排序。它工作得很好。但是,当有人点击链接时,我需要启用反向排序选项。例如,第一次从A-Z排序,然后第二次点击它将从Z-A排序的链接。你知道如何实现吗?我尝试了查询参数子表达式助手,但似乎无法获得来回切换的选项。基本上我需要使用title和-title,因为这是服务器希望它们进行排序的方式。我有一个Django后端 控制器:Javascript 使用链接查询参数子表达式的Ember.js,javascript,ember.js,Javascript,Ember.js,我正在使用链接到帮助器中的查询参数进行排序。它工作得很好。但是,当有人点击链接时,我需要启用反向排序选项。例如,第一次从A-Z排序,然后第二次点击它将从Z-A排序的链接。你知道如何实现吗?我尝试了查询参数子表达式助手,但似乎无法获得来回切换的选项。基本上我需要使用title和-title,因为这是服务器希望它们进行排序的方式。我有一个Django后端 控制器: App.PostsIndexController = EmberArrayController.extend({ queryParams
App.PostsIndexController = EmberArrayController.extend({
queryParams: ['sortBy'],
sortBy: 'title',
direction: null,
});
我也试过:
sortBy: 'title:-title"
{{#link-to 'posts' (query-params sortBy="title" direction="-title:title")}}A-Z
<span class="caret"></span>
{{/link-to}}
路线:
App.PostsIndexRoute = Ember.Route.extend({
queryParams: {
sortBy: {
refreshModel: true
}
},
model: function (params)
return this.store.find('post', {
sort: params.sortBy
})
}
}))
我还尝试在sort:params.sortBy行之后添加这个
direction: params.direction
模板:(节选)
{{#链接到“posts”(查询参数sortBy=“title”direction=-title:title)}A-Z
{{/链接到}
我也试过:
sortBy: 'title:-title"
{{#link-to 'posts' (query-params sortBy="title" direction="-title:title")}}A-Z
<span class="caret"></span>
{{/link-to}}
{{#链接到“posts”(查询参数sortBy=“title”direction=“-title:title”)}A-Z
{{/链接到}
任何帮助都将不胜感激。我觉得一定有什么东西我遗漏了,但在谷歌搜索中找不到。正如您所指出的,您的后端通过接受
title
或-title
将排序和direction
合并为一个属性
您需要的是,当用户单击排序链接时,能够动态更改排序属性的值。我会向您想要触发排序的链接添加一个{{action'clickSort'}
,然后在控制器中定义该操作
由于您已设置了refreshModel:true
,因此对sortBy
属性的任何更改都将自动对后端进行另一次REST调用
下面是一个例子:
App.PostsIndexController = EmberArrayController.extend({
queryParams: ['sortBy'],
sortBy: 'title',
actions: {
clickSort: function() {}
if ( this.get('sortBy') === 'title' )
this.set('sortBy', '-title');
else
this.set('sortBy', 'title');
}
});