我正在使用带有主干的requirejs。该脚本运行时没有错误,但 model .fetch()不会更新模型。 Backbone.js的两个文件是: -
在main.js中我有
'use strict';
require(['pageElements'],function(pageElements){
$( document ).ready(function() {
var country = new pageElements.country();
country.fetch({
success: function(e){
console.log(country.get('areaLevelZeroID')); // returns undefined
}
});
});
});
在pageElements.js中我有
define(function() {
var country = Backbone.Model.extend({
url : 'resources/js/backBoneSandBox/countries.php',
parse: function(data){
newData = JSON.parse(data);
console.log(newData.areaLevelZeroID); // returns 1
return data;
}
});
return ( country );
});
解析函数返回正确的值但不更新模型。
resources / js / backBoneSandBox / countries.php经过测试并返回jSON字符串
{"areaLevelZeroID":"1","areaLevelZeroName":"Afghanistan"}
我必须遗漏一些非常简单但我无法看到的东西。如果您有任何建议,请提前感谢您。
答案 0 :(得分:0)
一般情况下,流量为fetch - parse - set - success handler
。
在您的情况下,您从服务器接收字符串响应,因此在调用模型上的set
之前,您必须将其解析为JSON。这就是为什么,你必须return newData;