Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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_Jquery_Canjs_Canjs Model - Fatal编程技术网

Javascript 如何使用新模型对象刷新当前视图

Javascript 如何使用新模型对象刷新当前视图,javascript,jquery,canjs,canjs-model,Javascript,Jquery,Canjs,Canjs Model,我正在构建一个简单的任务应用程序,可以在其中添加新状态。场景是,我已经通过调用can.Model findAll方法使用预定义的对象数组构建了状态仪表板。视图存储在“dashboard.ejs”中。在创建新状态时,我会将该数据持久化到对象数组中,并在保存回调中保存新的数组数据(包括出现的新数据)。现在我的问题是如何用新返回的数据刷新当前视图 controller=new can.Control({ init:function(element,options) { v

我正在构建一个简单的任务应用程序,可以在其中添加新状态。场景是,我已经通过调用can.Model findAll方法使用预定义的对象数组构建了状态仪表板。视图存储在“dashboard.ejs”中。在创建新状态时,我会将该数据持久化到对象数组中,并在保存回调中保存新的数组数据(包括出现的新数据)。现在我的问题是如何用新返回的数据刷新当前视图

controller=new can.Control({
    init:function(element,options)
    {
       var frag=can.view('dashboard.ejs',this.options)
       this.element.html(frag);
    },
    'someButton click':function(el,ev)
    {
      new ModelCall(formObject).save(function(response)
      {
         //response contains added new object
        //how to refresh the dashboard.ejs with the new response
      });
    }
})

为此,我是否需要再次创建新控制器的对象,或者我缺少什么?

can.Model.save在完成后返回保存的模型,因此您所要做的就是将新模型推送到列表中:

var self = this'
model.save(function (savedModel) {
    self.listOfModels.push(savedModel);
});

在你的情况下,我不清楚你的模型列表在哪里,在这个地方。选项?将模型推入列表后,视图应自动刷新。

是。我的模型列表在这个.options中。现在save函数返回新的模型对象(整个旧列表+新对象)。如何使用该响应进行更新?我在我的视图中使用了此选项:)EJS应该为您更新此选项,确保您正在使用EJS模板中的.each和.attr。关于,如何为findAll()一次又一次刷新数据?在对记录执行某些操作后,我想再次获取记录