我触发了一个名为“搜索”的事件以及一个对象。
$(".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
我希望能够将“params”从对象中解开为纯文本,并且还想知道为什么在这种情况下会发生换行
searchProps: Array[3]
searchText: "sometext"
__proto__: Object
打印如下: params=searchText=sometext&searchProps=prop1&searchProps=prop2&searchProps=prop3
最佳答案
您可以使用以下方法“解开”对象:JSON.stringify(params)
但是,我认为您可能会因为向 params 对象添加一个名为 params 的键而感到困惑。您可能想保留那个额外的键:
$(".btn-class").on("click", function() {
var params = {
"searchText": "sometext",
"searchProps": ["prop1", "prop2", "prop3"]
};
COMP.Util.announce("search",params)
});
关于javascript - 在 JavaScript 中解开对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32129129/