javascript - Backbone 模型。获取不设置值

标签 javascript backbone.js sequelize.js

这是我的 Backbone 模型构造器

define([], function(){
     return Backbone.Model.extend({

         urlRoot:'/dummy-api/Instances',
         defaults:{
             name:null,
             read:false,
             write:false
         },

         initialize: function () {
             this.fetch();
             console.log("after init "+this.get("id")+" name="+this.get("name"));
         }

     })
});

在/dummy-api/Instances/1 中放置了这个

{"id":1,"name":"bangladesh"}

我已经把这个模型附加到一个 View 上了

define(['models/instance.js'], function(Model){
     View = Backbone.View.extend({
            initialize: function() {
            this.model = new Model({
                id:1
            });

        });
     return new View();
});

正在调用 URL,其内容如上,我可以在 firebug 中看到,但“名称”未设置。 我知道我可以提供一个解析函数,当我使用 sequelize-restful-extended 时我可能需要这样做,但我首先希望 backbone 从固定文件读取和设置。 doco 足够直接,我所拥有的应该可以工作,所以我在做其他不好的事情吗?

最佳答案

您在 model.fetch 完成之前记录值。

设置回调而不是在提取成功完成后记录值,它应该按预期工作。

define([], function(){
    return Backbone.Model.extend({
        urlRoot:'/dummy-api/Instances',
        defaults:{
            name:null,
            read:false,
            write:false
        },
        initialize: function () {
            this.fetch({
               success: function() {
                   console.log("after init "+this.get("id")+" name="+this.get("name"));
               }.bind(this)
            });
        }
    })
});

这是必要的,因为 this.fetch() 异步执行 XMLHttpRequest,并在您的浏览器在单独的“线程”(对于所有意图和目的)。

关于javascript - Backbone 模型。获取不设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32424495/

相关文章:

javascript - 如何正确使用 Backbone.js 集合来显示列表

javascript - Sequelize js : create/update with foreign key

node.js - 将 Sequelize 模型转换为 JSON Schema 以进行用户输入验证

javascript - 使用 TAU 库在 Tizen Web 应用程序中解析 JSON

javascript - AdminLTE BootStrap - 表搜索栏消失并带有附加 <th> 标签

javascript - 发布和订阅无法正常工作

javascript - 更改 MarionetteJS 中的 "page"

javascript - shopify 和 instafeed.js 兼容性问题

javascript - 使用 collection.reset 不会触发集合的解析方法

node.js - 在 Sequelize 中使用嵌套关联时遇到问题