簡體   English   中英

獲取更改的“ this.model”屬性值

[英]Get the changed “this.model” attribute value

一個Backbone.js noob問題。 目前正在使用的代碼如下所示

我的數據模型模型:

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 這是我打印this.model時的this.model

在此處輸入圖片說明

為什么當我this.model.get('completed')我得到false

我在做正確的事情? 任何幫助/建議將不勝感激,以走得更遠。

提前致謝。

View:initialize您獲得了默認模型值,然后在幾秒鍾內ServiceModel.fetch() 完成了請求並使用true更新了模型值

依我看來:
1從SupplierService移出DataModel
2以與DataModel相同的方式重寫SupplierService
3傳遞SupplierService作為對AppVIew依賴
AppView:initialize 4 AppView:initialize放置

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

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

   supplierService.figures.calculate(data)
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM