渲染视图后正在获取模型数据

model data is fetching after rending the view

我有一个模型和视图,其中在模型获取数据之前渲染视图。当我签入数据库时​​,当我在视图中进行更改时,该值会持久保存到数据库中。但是在渲染视图时我无法通过 model.fetch() 获取值。

define([
    "marionette",
    "monet",
    "modules/fetchParams/collections/fetchParamsListLevels",
    "modules/fetchParams/views/fetchParamsLayoutView",
    "modules/fetchParams/models/fetchParam"
], function(Marionette, Monet, fetchParamListLevels, FetchParamsLayoutView,FetchParamModel){
    return Marionette.Module.extend({
        model:"",
        onStart:function(){
            this.model =new FetchParamModel();
        },
        displayInRegionMarketParams:function(region){
           this.fetchModel("market");
           region.show(new FetchParamsLayoutView({model: this.model, title: " Market"}));
        },
       displayInRegionShareParams:function(region){
           this.fetchModel("shares");
           region.show(new FetchParamsLayoutView({model: this.model, title: "Shares"}));
        },
.
.
.
fetchModel:function(type){
            this.model.setType(type);
            this.model.fetch();
        }

我试过如下但找不到解决办法。让我知道我在这里缺少什么。

this.listenTo(this.model, "change", this.render()); 

您似乎不小心在 this.render 回调中添加了括号。回调的要点是它会为您调用,因此您不必这样做。因此,您将它不带括号地传递给事件侦听器,它将 运行 为您提供。

您的代码将以这种方式工作:

this.listenTo(this.model, "change", this.render);

此外,如果您想在数据从服务器传出后立即执行任何操作,您可以使用从 fetch() 方法返回的承诺:

this.model.fetch().done(function(data, status, xhr){
  console.log( data, status, xhr );
  /** update the view maybe */
});