我正在尝试使用wordpress中的骨干服务,这需要获取一个网址,并从网址获取此值:
["C:\\wamp\\www\\wordpress\/wp-content\/uploads",
"C:\\wamp\\www\\wordpress\/wp-content\/uploads\/2014",
"C:\\wamp\\www\\wordpress\/wp-content\/uploads\/2014\/07",
"C:\\wamp\\www\\wordpress\/wp-content\/uploads\/2014\/08",
"C:\\wamp\\www\\wordpress\/wp-content\/uploads\/2014\/10",
"C:\\wamp\\www\\wordpress\/wp-content\/uploads\/2014\/11",
"C:\\wamp\\www\\wordpress\/wp-content\/uploads\/woocommerce_uploads"]
我将这些信息存储在一个集合中,但问题是主干将每一个放入模型中(在这部分中很好)但是如果我要求每个模型的值,我会得到类似的东西
0:"c"
1:":"
2:"/"
.
.
我不知道为什么会发生这种情况以及如何修复,你们中的任何人都知道这个问题的原因吗?和解决方案?
这是我的收藏品
var CCUFFolder= Backbone.Collection.extend({
url:ajaxurl
});
获取
cCUFFolder.fetch({type:'POST',data:{action: "cuf_get_dirs"}});
答案 0 :(得分:0)
Backbone的Model类型本质上是对象文字的包装器。当你从字符串构造你的模型时,Backbone通过解析每个字符串的键/值对来创建每个模型的attributes
哈希 - 这产生了一个字符数组。你想要做的是从对象文字构建你的模型:
var collection_source = [
{ "Path": "C:\\wamp\\www\\wordpress\/wp-content\/uploads" },
{ "Path": "C:\\wamp\\www\\wordpress\/wp-content\/uploads\/2014" },
{ "Path": "C:\\wamp\\www\\wordpress\/wp-content\/uploads\/2014\/07" },
{ "Path": "C:\\wamp\\www\\wordpress\/wp-content\/uploads\/2014\/08" },
{ "Path": "C:\\wamp\\www\\wordpress\/wp-content\/uploads\/2014\/10" },
{ "Path": "C:\\wamp\\www\\wordpress\/wp-content\/uploads\/2014\/11" },
{ "Path": "C:\\wamp\\www\\wordpress\/wp-content\/uploads\/woocommerce_uploads" }
];
var folder = new CCUFFolder(collection_source);
console.log(folder.first().get('Path'));
答案 1 :(得分:0)
您应该在集合中实施parse
方法:
var CCUFFolder= Backbone.Collection.extend({
url: ajaxurl,
parse: function (response) {
return _.map(response, function (item) {
return { path: item }
});
}
});
之后,您可以正确检索模型:
cCUFFolder.each(function (model) {
console.log(model.get('path');
});