嗨,我是Backbone和JS的新手。
我需要从服务器获取数据并将此值作为planProviderMode
选项单选按钮的默认值。所以我在defaultMode
变量中获取数据。但是调用是异步的,我在执行planProviderMode: defaultMode.value
代码后收到一个值。
var PlanProviderMode = Backbone.Model.extend({
url: '/rest/enrollment/step/plan-provider-mode'
});
var defaultMode = new PlanProviderMode;
defaultMode.fetch({
success: function() {
// recieve correct data
}
});
var formItems = new Backbone.Form({
template: tpl,
className: 'wizard-content',
schema: {
planProviderMode: {
template: formTpl,
type: 'Radio',
options: [
{
label: 'By Plan',
val: 'BY_PLAN',
custom: {
img: '../resources/img/by-plan.jpg'
}
},
{
label: 'By Provider',
val: 'BY_PROVIDER',
custom: {
img: '../resources/img/by-provider.jpg'
}
}
]
}
},
//here i put the default value
data: {
planProviderMode: defaultMode.value
}
});
如何将获取的值设置为表单。
如果问题描述得不好,请告诉我。感谢。
答案 0 :(得分:0)
你应该在success callback
函数中编写这样的代码,只有在获取请求成功完成后才会执行。
var PlanProviderMode = Backbone.Model.extend({
url: '/rest/enrollment/step/plan-provider-mode'
});
var defaultMode = new PlanProviderMode;
defaultMode.fetch({
success: function() {
// recieve correct data
//here you put the default value
data: {
planProviderMode: defaultMode.value
}
}
});
var formItems = new Backbone.Form({
template: tpl,
className: 'wizard-content',
schema: {
planProviderMode: {
template: formTpl,
type: 'Radio',
options: [
{
label: 'By Plan',
val: 'BY_PLAN',
custom: {
img: '../resources/img/by-plan.jpg'
}
},
{
label: 'By Provider',
val: 'BY_PROVIDER',
custom: {
img: '../resources/img/by-provider.jpg'
}
}
]
}
}
});
答案 1 :(得分:0)
Backnone有一个名为"解析"的功能。在这种情况下可以帮助你。
在服务器的数据填充模型之前,将始终从主干调用此函数。
采用read in parse方法。
这里有一个答案。 how to override Backbone's parse function?
希望有所帮助