Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 完整分析对象不可用于下划线模板_Javascript_Backbone.js_Parse Platform_Underscore.js Templating - Fatal编程技术网

Javascript 完整分析对象不可用于下划线模板

Javascript 完整分析对象不可用于下划线模板,javascript,backbone.js,parse-platform,underscore.js-templating,Javascript,Backbone.js,Parse Platform,Underscore.js Templating,我正在建立一个网页,显示所有用户最近捐赠的基于解析的应用程序。我在这里找到的示例Todo应用程序的基础上构建此应用程序:。下面是我的main.js文件中的代码(除了替换的类名之类的内容外,它主要反映了教程todo.js): //捐赠模式 //-------------- var generation=Parse.Object.extend(“捐赠”{ //实例方法 //默认属性 默认值:{ }, //确保创建的每个捐赠都包含内容 初始化:函数(){ } }); //这是瞬态应用程序状态,在解析时

我正在建立一个网页,显示所有用户最近捐赠的基于解析的应用程序。我在这里找到的示例Todo应用程序的基础上构建此应用程序:。下面是我的main.js文件中的代码(除了替换的类名之类的内容外,它主要反映了教程todo.js):

//捐赠模式
//--------------
var generation=Parse.Object.extend(“捐赠”{
//实例方法
//默认属性
默认值:{
},
//确保创建的每个捐赠都包含内容
初始化:函数(){
}
});
//这是瞬态应用程序状态,在解析时不会持久化
var AppState=Parse.Object.extend(“AppState”{
默认值:{
过滤器:“全部”
}
});
//募捐
//-------------------
var DonationList=Parse.Collection.extend({
型号:捐赠
});
//捐赠项目视图
//-----------------
var DonationView=Parse.View.extend({
标记名:“tr”,
模板:35;.template($('#捐赠模板').html()),
//特定于捐赠的DOM事件
活动:{
},
初始化:函数(){
_.bindAll(这是“呈现”);
this.model.bind('change',this.render);
},
render:function(){
$(this.el).html(this.template(this.model.toJSON());
归还这个;
}
});
//应用程序
//---------------
var AdminView=Parse.View.extend({
el:“.内容”,
初始化:函数(){
var self=这个;
_.bindAll(这是“addOne”、“addAll”、“render”);
这是.el.html(35;.template($('#admin template').html());
////收集捐款
this.捐款=新捐款列表;
//设置解析查询
var query=新建Parse.query(捐赠);
查询。包括(“用户”);
查询。包括(“慈善”);
查询。包括(“业务”);
this.investments.query=query;
this.generations.bind('add',this.addOne);
this.generations.bind('reset',this.addAll);
this.generations.bind('all',this.render);
这是我的({
成功:功能(捐赠){
对于(变量i=0;i<0.length;i++){
console.warn(console.models[i]);
}
}
});
state.on(“更改”,this.filter,this);
},
render:function(){
这是delegateEvents();
},
过滤器:函数(){
这是addAll();
},
addOne:功能(捐赠){
var view=newdonationview({model:generation});
此.$(“#捐赠列表”).append(view.render().el);
},
addAll:函数(收集、筛选){
此.$(“#捐赠清单”).html(“”);
这个。捐款。每个(这个。加一);
}
});
//应用程序的主视图
var AppView=Parse.View.extend({
//与其生成新元素,不如绑定到的现有骨架
//应用程序已存在于HTML中。
el:$(“#adminapp”),
初始化:函数(){
这个。render();
},
render:function(){
新建AdminView();
}
});
var state=新的AppState;
新AppView;
当模型从Parse-in中获取时

this.donations.fetch({
            success: function(donations) {
                for(var i = 0; i < donations.length;i++) {
                    console.warn(donations.models[i]);
                }
            }
        });
this.fetch.fetch({
成功:功能(捐赠){
对于(变量i=0;i<0.length;i++){
console.warn(console.models[i]);
}
}
});
我拥有捐赠的全部指针关系,例如用户及其所有属性、慈善机构及其所有属性等。但是,我感兴趣的是在下划线模板中显示捐赠用户的用户名,但此时捐赠上的用户对象不再具有用户名属性。这就好像在查询返回时和模板提供新的捐赠集合时,某些属性正在被删除。下面是下划线模板:

<script type="text/template"  id="donation-template">
    <td><%= donationAmount %></td>
    <td><%= charity %></td>
    <td><%= user  %></td>
    <td><%= business  %></td>
    <td><%= createdAt  %></td>
</script>


donationAmount和createdAt按预期显示,但charity、user和business仅显示为[Object Object],我无法使用点符号访问它们的任何属性。如何确保下划线视图可以使用所有这些指针关系上所需的属性

将用户列表设置为模型集合

return Parse.Collection.extend({
        model: User
});
执行“关系”查询并设置本地模型/var

    this.collection = new UserList();
    this.model = this.options.model;  

    var relation = this.model.relation("users");
    this.collection.query = relation.query();       
    var user = this.model.id;
    var username = this.model.get("name");
    this.collection.fetch();

阅读Parse JS SDK文档,了解如何填充指针和关系。它们不是由defaultinclude填充的,难道include不应该实现这一点吗?如果我将对象属性记录在查询的成功块中,我可以看到所有的对象属性,但之后它们似乎不可用。抱歉,我不确定您建议我将此代码放在哪里。你能详细说明一下吗?谢谢你的帮助。示例代码来自关系查询中的主干/木偶/项目访问parse.Users(通过关系或指向用户的指针进行查询访问)。如果您使用的是带有集合的MVC框架,我认为它可能会提供一些想法。
    this.collection = new UserList();
    this.model = this.options.model;  

    var relation = this.model.relation("users");
    this.collection.query = relation.query();       
    var user = this.model.id;
    var username = this.model.get("name");
    this.collection.fetch();