首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CanJS如何刷新模型

CanJS如何刷新模型
EN

Stack Overflow用户
提问于 2014-03-12 11:47:47
回答 1查看 686关注 0票数 1

我有一个模型,它表示在服务器上运行的作业列表。

我想轮询服务器以查看计时器上的更新,以显示对作业状态的更改。

我该怎么做?

我的控制室看起来像这样

代码语言:javascript
复制
var control = Control({
        defaults: {
            view: 'app/views/job-index.ejs'
        }
    }, {
        init: function () {
            this.element
                .empty()
                .append(can.view(this.options.view, this.options));

            var options = this.options;
            window.setInterval(function() {
                options.result.refresh();
            }, 1000);
        },
    });

我的模特,到目前为止是这样的

代码语言:javascript
复制
var model = can.Model({
        findOne: 'GET /api/jobs'
    }, {
        refresh: function() {
            // what goes here?
        }
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-13 00:40:36

第一项意见是:

如果您要获得一组作业,您可能需要使用findAll而不是findOne:

代码语言:javascript
复制
findAll: 'GET /api/jobs',
findOne: 'GET /api/jobs/{id}'

我知道result是一个单一的记录。所以你可以做这样的事情:

代码语言:javascript
复制
var Model = can.Model({
    findAll: 'GET /api/jobs',
    findOne: 'GET /api/jobs/{id}'
    }, {
        refresh: function () {
            var id = this.attr('id');
            var self = this;

            Model.findOne({id: id}, function (model) {
                self.attr(model.attr());
            });
    }
});

此外,按照约定,您应该将模型类命名为Model,而不是model

这是一把小提琴http://jsbin.com/xarodoqo/4/edit

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22350543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档