Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 显示backbonejs模型的获取结果_Backbone.js_Backbone Views_Backbone Model - Fatal编程技术网

Backbone.js 显示backbonejs模型的获取结果

Backbone.js 显示backbonejs模型的获取结果,backbone.js,backbone-views,backbone-model,Backbone.js,Backbone Views,Backbone Model,我试图以html形式显示单个模型的获取结果 以下是我的backbone.js部分: window.Category = Backbone.Model.extend({ urlRoot : "../myWs/category/" }); window.CategoryView = Backbone.View.extend({ el : $('#category_details'), template : _.template($('#category-details').

我试图以html形式显示单个模型的获取结果

以下是我的backbone.js部分:

window.Category = Backbone.Model.extend({
    urlRoot : "../myWs/category/"
});

window.CategoryView = Backbone.View.extend({
    el : $('#category_details'),
    template : _.template($('#category-details').html()),
    initialize : function() {
        this.render();
    },
    render : function(eventName) {
        $(this.el).html(this.template(this.model.toJSON()));
        return this;
    }
});

var category = new Category({
    id : "067e6162-3b6f-4ae2-a171-240000000000"
});
var vategoryView = new CategoryView({
    model : category
});

category.fetch();
我正在做的是:

  • 创建主干模型类别
  • 创建主干视图类别视图
  • 从RESTWeb服务获取数据,该服务返回JSON数据对象。 在div“#类别详细信息”中显示提取的数据。 在浏览器上,我可以看到“fetch()”方法可以工作,因为我可以看到返回的JSON对象
  • 以下是HTML代码:

    <div id="category_details">details:</div>
    
    <script type="text/template" id="category-details">
    <label>Id:</label>
    <input id="id" name="id" type="text" disabled />
    
    <label>Name:</label>
    <input type="text" id="name" name="name" value="<%= name %>"/>
     </script>
    
    详细信息:
    身份证件:
    姓名:
    
    问题是数据没有以html显示。
    如何以html格式显示数据?

    您的视图不会处理模型上的更改,这意味着在
    model.fetch
    完成时不会重新呈现视图

    尝试从模型绑定更改事件:

    window.CategoryView = Backbone.View.extend({
        el : $('#category_details'),
        template : _.template($('#category-details').html()),
        initialize : function() {
            this.render();
            this.model.on('change', this.render, this);
        },
        render : function(eventName) {
            $(this.el).html(this.template(this.model.toJSON()));
            return this;
        }
    });
    
    还有一个演示

    请注意,下划线不喜欢被要求呈现未定义的变量,您可能应该为模型添加默认值:

    window.Category = Backbone.Model.extend({
        urlRoot : "../myWs/category/",
        defaults: {
            name: ''
        }
    });