【发布时间】:2015-08-20 22:01:37
【问题描述】:
我已经触发了一个名为“搜索”的事件以及一个对象。
$(".btn-class").on("click", function() {
var params = {
"searchText": "sometext",
"searchProps": ["prop1", "prop2", "prop3"]
};
COMP.Util.announce("search", {
params: params
})
});
在另一个类中,我正在监听这个事件并处理那个对象:
var ListView = Backbone.View.extend({
init: function() {
COMP.Util.listenTo("search", $.proxy(this.applySearch, this));
},
applySearch: function(params) {
// do something
}
}
})
我的问题是当 'params' 传递给 applySearch 函数时,它变成了一个包装对象:
params: Object
searchProps: Array[3]
searchText: "sometext"
__proto__: Object
__proto__: Object
如果打印出来,我得到:
params=%5Bobject+Object%5D
我希望能够将 Object 中的“参数”解包为纯文本,并且想知道为什么在这种情况下会发生换行
searchProps: Array[3]
searchText: "sometext"
__proto__: Object
这样打印: params=searchText=sometext&searchProps=prop1&searchProps=prop2&searchProps=prop3
【问题讨论】:
-
你不能在没有明确命名空间的情况下解包参数,即 console.log(params.searchText + params.searchProps[0], etc);您可以创建一个辅助函数来根据需要格式化对象。
标签: javascript jquery