骨干提取不更新模型

时间:2017-08-01 11:08:43

标签: javascript backbone.js

我正在使用带有主干的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"}

我必须遗漏一些非常简单但我无法看到的东西。如果您有任何建议,请提前感谢您。

1 个答案:

答案 0 :(得分:0)

一般情况下,流量为fetch - parse - set - success handler。 在您的情况下,您从服务器接收字符串响应,因此在调用模型上的set之前,您必须将其解析为JSON。这就是为什么,你必须return newData;