javascript – 在Backbone中的AJAX请求中更改模型后重新渲染
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在Backbone中的AJAX请求中更改模型后重新渲染,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1465字,纯文字阅读大概需要3分钟。
内容图文
我需要一些帮助我的代码由于某种原因我不能让我的观点在模型更改后重新渲染.
var ResultLoanView = Backbone.View.extend({
id:"result",
initialize: function(){
this.render();
this.on('submissionMade',this.getData,this)
this.model.on('change',this.render,this)
},
template: _.template("<% _.each(models, function(data,index) { %><div><%= index %></div> <%= data %><% }); %>"),
getData: function(){
var that = this;
$.ajax({
type: "GET",
url:"http://zillow.com/webservice/mortgage/CalculateAffordability.htm?",
data: {
"zws-id":"APIKEY",
annualincome: 1000000,
monthlypayment: 2000,
down: 800000,
monthlydebts: 1500,
rate: 6.504,
schedule: "yearly",
term: 360,
debttoincome: 36,
incometax: 30,
propertytax: 20,
hazard: 20000,
pmi: 1000,
output: "json"
},
dataType: "jsonp",
success: function(data) {
that.model.attributes = data.response
console.log(that.model)
}
,
error: function(result) {
alert("Error");
}
})
},
render:function(){
console.log("rerender")
var need = this.$el.html(this.template({models:this.model.toJSON()}))
$('body').append(need)
}
})
因此,当从父视图触发submissionMade时.这将启动$.ajax请求.最后,这将带回我想用ResultLoanView分配给关联模型的数据.由于某种原因,模型没有被更改,因为初始化中的侦听器没有重新渲染我的html.我的目标是将数据重新分配给我的模型,该模型将在初始化时基于侦听器重新呈现.有任何想法吗?
解决方法:
我相信你需要打电话.
that.model.set(data.response)
而不是直接更改.attributes.文档提到了set()的更改事件.
只是旁注,查看this.listenTo()与model.on()之间的区别.许多实例最好使用listenTo来防止内存泄漏.
内容总结
以上是互联网集市为您收集整理的javascript – 在Backbone中的AJAX请求中更改模型后重新渲染全部内容,希望文章能够帮你解决javascript – 在Backbone中的AJAX请求中更改模型后重新渲染所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。