我正在使用backbone.js创建应用程序。我有代码JS代码如下,Javascript Object literal assignment
window.RequestsView = Backbone.View.extend({
initialize:function (input) {
console.log('input ' + JSON.stringify(input));
this.variables = { request_id:input.model.id,
status:input.model.status,
mavenGav:input.model.mavenGav,
email:input.model.emailId,
errorNo:input.model.errorNo,
errorDesc:input.model.errorDesc };
console.log("variables : "+ JSON.stringify(this.variables));
this.template = _.template(tpl.get('requests'));
var out = this.template(input);
console.log("out: "+ JSON.stringify(out));
// deep copy the object
this.request = $.extend(true, {}, input);
}
});
当我调试这个铬调试器,我得到以下日志,
input {"model":{"mavenGav":"fgdfgfdgdfg:fgdfgfd:gdfgdfg","repositories":["dfgdfgdfgf"],"emailId":"gdfg","id":1083,"createdTime":null,"status":"CREATED","errorNo":0,"errorDesc":null}}
requests.js:12variables : {"request_id":1083}
有没有错误。剩下的分配给this.variables的javascript文字会发生什么?
只记录对象:'console.log(this.variables);'。我猜其他属性是'undefined',它们在JSON中被省略,因为['undefined'不是允许的值](http://json.org/)。 – 2012-04-09 20:25:11
当我在jsfiddle中测试这个时,我得到了正确的答案:http://jsfiddle.net/8BwPn/1/ Hmzzz。 – koenpeters 2012-04-09 20:31:48
我已经更新了代码http://jsfiddle.net/8BwPn/4/,现在它不打印任何东西。这是我的问题。我可以在对象文字中使用变量吗? – Nambi 2012-04-09 21:00:42