我为hello.js实现了一个新模块。
我需要auth
,grant
和base
是动态的。
有没有办法从hello.init()
调用设置/覆盖这些值?
我的模块看起来像这样:
(function(hello) {
hello.init({
my_service_name: {
name: 'My-Service-Name',
oauth: {
version: 2,
auth: 'http://mydomain/oauth/authorize',
grant: 'http://mydomain/oauth/token'
},
scope: {
basic: ['basic_scope']
},
base: 'http://mydomain/',
xhr: function(p) {
if (p.method !== 'get' && p.data) {
// Serialize payload as JSON
p.headers = p.headers || {};
p.headers['Content-Type'] = 'application/json';
if (typeof (p.data) === 'object') {
p.data = JSON.stringify(p.data);
}
}
return true;
}
}
});
})(hello);
和我的hello.init()
电话:
hello.init({
my_service_name: server.consumerKey
}, {
redirect_uri : server.callbackUrl,
});
用例是我正在开发的应用程序将与多个服务器通信,因此我无法对模块文件中的URL进行硬编码。
答案 0 :(得分:0)
我发现我可以通过在oauth
调用中传递整个hello.init()
对象来覆盖默认设置:
hello.init({
my_service_name: {
id: server.consumerKey,
oauth: {
version: 2,
auth: server.auth_url,
grant: server.token_url
},
base: server.baseUrl
}
}, {
redirect_uri : server.callbackUrl
});