在Ember中更改CouchDB URL

时间:2014-05-12 21:27:46

标签: ember.js couchdb

我有一个使用ember-couchdb-kit与CouchDB实例接口的应用程序。在要求身份验证后,我无法访问服务器。

我尝试了Cookie身份验证,并在浏览器中设置了Cookie,但根据Chrome和Firefox中的网络对话框,它不会被发送到数据库以供后续请求使用。

我不明白为什么会这样,但为了让应用程序正常运行,我想尝试使用HTTP身份验证。

我的文档适配器只是:

App.Host = 'http://localhost:5984'
App.ApplicationAdapter = EmberCouchDBKit.DocumentAdapter.extend( { db: 'wells', host: App.Host } )

我想在网址中添加用户名和密码,因此在用户输入后,我会运行:

EmberCouchDBKit.DocumentAdapter.reopen( {
  host: ( function() {
    var parts = App.Host.split( '://' )
    return "%@://%@:%@@%@".fmt( parts[0], $('#username').val(), $('#password').val(), parts[1] )
  } )()
} )

后续请求的URL并未发生变化。我需要做什么?

1 个答案:

答案 0 :(得分:0)

每次使用时都不会重新创建适配器,并且重新打开仅适用于新创建的实例。因此,您需要在现有的适配器实例上重新定义它。在路线/控制器内你可以这样做:

var adapter = this.store.adapterFor('application');
adapter.set('host', 'foobar');