我正在修改这个用于自动完成 html 输入的优秀 javascript 库,请参见此处……因为我需要将一些额外参数传递给 Ajax 调用。实际上我正在寻找一些非破坏性的东西,以便它可以管理这个库的默认行为,它也能够处理“无额外参数”。
所以我想我会打个电话
myExtra = {b : 'b', c: 'c'}
// or maybe a thing like myExtra = "{b : 'b', c: 'c'}"
myAutoComplete = new Autocomplete('query', { serviceUrl:'autoComplete.rails'}, myExtra);
对 myExtra 进行 null 测试,如果 null 或将 myExtra 的内容“添加”到 Ajax 请求中,则不执行任何操作,因此这部分:
new Ajax.Request(this.serviceUrl, {
parameters: { query: this.currentValue , },
onComplete: this.processResponse.bind(this),
method: 'get'
});
当 myExtra 不是 null 或空字符串时变成这样:
new Ajax.Request(this.serviceUrl, {
parameters: { query: this.currentValue , b: 'b', c: 'c'},
onComplete: this.processResponse.bind(this),
method: 'get'
});
由于我是网络开发的新手,我的问题是我不知道如何将花括号内容{}添加到另一个内容中(而且我不确定我是否完全理解这些 {}...)
我想我想做 Python 接受的这个王者,但我只是不知道 Javascript 是如何做到的,
>>> class A:
def __init__(self, data):
self.data = data
>>> a = A("my data")
>>> dir(a)
['__doc__', '__init__', '__module__', 'data']
>>> myExtra = "b='b';c='c'"
>>> for x in myExtra.split(";"):
var, value = x.split('=')
setattr(a, var, value)
>>> dir(a)
['__doc__', '__init__', '__module__', 'b', 'c', 'data']
>>> print a.data, a.b, a.c
my data 'b' 'c'
所以,如果您有任何理解这一点的指示,请提前谢谢您。