Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Javascript “换衣服”;这是一个“模型”;属性值_Javascript_Backbone.js_Backbone Views_Backbone Model - Fatal编程技术网

Javascript “换衣服”;这是一个“模型”;属性值

Javascript “换衣服”;这是一个“模型”;属性值,javascript,backbone.js,backbone-views,backbone-model,Javascript,Backbone.js,Backbone Views,Backbone Model,一个主干的问题。我目前使用的代码如下所示 我的数据模型: define(['jquery', 'underscore', 'backbone'], function($, _, Backbone) { var DataModel = Backbone.Model.extend({ // Defaults attribute values defaults : { completed : false, },

一个主干的问题。我目前使用的代码如下所示

我的数据模型:

define(['jquery', 'underscore', 'backbone'], function($, _, Backbone) {
    var DataModel = Backbone.Model.extend({
        // Defaults attribute values
        defaults : {
            completed : false,
        },
        url : 'path/to/my/data.json',
    });
    return DataModel;
});
我有另一个名为
ServiceModel
的模型,它是
DataModel
的一个实例,看起来像这样

define(['jquery', 'underscore', 'backbone', '../models/DataModel'], function($, _, Backbone, DataModel) {

    // SupplierService as an Object Literal.
    SupplierService = {};

    // Instatiate the DataModel()
    var ServiceModel = new DataModel();
    var that = ServiceModel;

    ServiceModel.fetch().done(function() {
        data = ServiceModel.toJSON();

        SupplierService.figures.calculate(data)
    });

    SupplierService.figures = (function() {
        // I set completed to true here
        function constructor(d) {
        // some work done here
            that.set({
                completed : true,
            });
        }

        return {
            calculate : function(d) {
                constructor(d)
            },
        }
    })();

    return ServiceModel;
});
我的看法是:

define(['jquery', 'underscore', 'backbone', '../../models/ServiceModel'], function($, _, Backbone, ServiceModel) {
    var AppVIew = Backbone.View.extend({
        model : ServiceModel,
        initialize : function() {
            console.log(this.model.get('completed'));
        },
    });
    return AppVIew;
});


我的输出打印的是
false
,而不是
true
。这就是我打印此.model时的外观

为什么当我
这个.model.get('completed')
我得到
false

我在做正确的事情??如有任何帮助/建议,将不胜感激


提前感谢。

视图中:初始化
您已获得默认模型值,然后在几秒钟内
ServiceModel.fetch()
已完成请求并使用
true更新模型值

从我的角度来看:
1从供应商服务中移出数据模型 2以与数据模型相同的方式重写供应商服务 3将
SupplierService
作为依赖项传递给
AppVIew

4在
AppView中:初始化
put

serviceModel = new ServiceModel();
supplierService = new SupplierService();

serviceModel.fetch().done(function() {
   var data = serviceModel.toJSON();

   supplierService.figures.calculate(data)
});