Javascript 使用链接查询参数子表达式的Ember.js

Javascript 使用链接查询参数子表达式的Ember.js,javascript,ember.js,Javascript,Ember.js,我正在使用链接到帮助器中的查询参数进行排序。它工作得很好。但是,当有人点击链接时,我需要启用反向排序选项。例如,第一次从A-Z排序,然后第二次点击它将从Z-A排序的链接。你知道如何实现吗?我尝试了查询参数子表达式助手,但似乎无法获得来回切换的选项。基本上我需要使用title和-title,因为这是服务器希望它们进行排序的方式。我有一个Django后端 控制器: App.PostsIndexController = EmberArrayController.extend({ queryParams

我正在使用链接到帮助器中的查询参数进行排序。它工作得很好。但是,当有人点击链接时,我需要启用反向排序选项。例如,第一次从A-Z排序,然后第二次点击它将从Z-A排序的链接。你知道如何实现吗?我尝试了查询参数子表达式助手,但似乎无法获得来回切换的选项。基本上我需要使用title和-title,因为这是服务器希望它们进行排序的方式。我有一个Django后端

控制器:

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');
        }   
});