ActiveModelAdapter中的动态标头基于我的路线

时间:2015-01-15 06:57:34

标签: ember.js ember-data

我想根据我的路由动态设置我的ActiveModelAdapter标头,以便我可以从后端优化数据负载。

我需要为索引显示路由动态设置标题为

App.ResourceAdapter = DS.ActiveModelAdapter.extend
  host: "localhost:3000"
  headers:
    # For Index routes
    "Accept": "application/vnd.app+json; version=1"
    # OR For Show routes
    "Accept": "application/vnd.app-detailed+json; version=1"

Ember doc建议使用计算头,但如何在适配器中获取路由上下文?

1 个答案:

答案 0 :(得分:1)

您可以通过App.__container__.lookup("controller:application").get("currentRouteName")

访问当前路线

根据doc

然后由你做以下事情:

    headers : function(){
         var location = App.__container__.lookup("controller:application").get("currentRouteName") ;
          if(location==="resource"){
            return  "Accept": "application/vnd.app+json; version=1"
          }else{
            return "Accept": "application/vnd.app+json; version=1"
          }
    }.property().volatile()

您需要适应当然的需求:)