【问题标题】:EmberJS RESTAdapter - Specific url forEmberJS RESTAdapter - 特定的 url
【发布时间】:2015-05-24 04:46:21
【问题描述】:

我在 ember-data 上有一个主机模型:

App.Host = DS.Model.extend
  name: DS.attr 'string'

而我使用的是DS.RESTAdapter

EmberJS 调用/hosts 获取主机,这是正常的。

我的问题是获取主机的网址不是/hosts,而是/nagios/hosts

我怎样才能只为主机模型指定这个 url?

我已经尝试过这些答案:

没有任何成功。

目前使用:

Ember      : 1.10.0
Ember Data : 1.0.0-beta.15
jQuery     : 2.0.3

感谢您的帮助。

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    仅为 hosts 模型添加一个适配器(ember 生成适配器主机)并添加命名空间属性:

    App.HostsAdapter = DS.RESTAdapter.extend({
      namespace: 'nagios'
    });
    

    【讨论】:

    • 按照惯例我应该把它放在哪里?在我的模型文件上?
    • 如果您使用 Ember CLI,您可以使用 ember 生成器,例如:ember generate adapter hosts,它会在“adapters”中生成一个名为“hosts.js”的文件夹。所以完整路径是 .../app/adapters/hosts.js
    • 我没有使用 Ember CLI。我测试了你的解决方案,什么也没做。我做错了什么?
    • 您可以尝试将其命名为:App.HostAdapter 而不是 App.HostsAdapter,但请确保包含此代码或创建一个自己的文件(如 hosts-adapter.js)并包含它。跨度>
    • 这里是供进一步阅读的文档:emberjs.com/guides/models/the-rest-adapter 完全可以通过遵循命名约定为单个模型创建适配器。
    【解决方案2】:

    终于找到了正确的解决方案。

    从上下文开始,我有一个初始 RESTAdapter 配置:

    App.ApplicationAdapter = DS.RESTAdapter.extend
      host: 'http://localhost:8000/api'
    

    要添加/nagios url 部分,只需创建一个名为adapters/host.coffee(或.js)的文件,如下所示:

    App.HostAdapter = App.ApplicationAdapter.extend
      namespace: 'nagios'
    

    请不要使用App.ApplicationAdapter 扩展名而不是DS.RESTAdapter 以保留初始配置。

    瞧!被调用的 url 现在是http://localhost:8000/api/nagios/hosts

    非常感谢 EntspAndi 提供的非常有用的帮助!

    【讨论】:

      【解决方案3】:

      用于在同一目录中设置路径的命名空间

      App.HostsAdapter = DS.RESTAdapter.extend({namespace: 'nagios' });
      

      或者

      host 一般用于更改目录

      App.HostsAdapter = DS.RESTAdapter.extend({ host: 'nagios' });
      

      如果您想为文件名添加后缀,请这样做(将其放在 extend() 中)。

      suffix: '.json',
      
            pathForType: function(type) {
              return this._super(type) + this.get('suffix');
            }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 1970-01-01
        • 2015-08-15
        • 1970-01-01
        相关资源
        最近更新 更多