Javascript 未使用donejs正确更新计算值

Javascript 未使用donejs正确更新计算值,javascript,canjs,donejs,Javascript,Canjs,Donejs,我有一个标准的donejs项目,其中包含一个组件和一个模型,都是使用默认生成器创建的,如下所示: donejs add component storyBoard story-board donejs add supermodel story 我在这里留下了一个示例项目: 如果您使用donejs develop运行此示例并转到,您将看到如下内容: donejs add component storyBoard story-board donejs add supermodel story 问

我有一个标准的donejs项目,其中包含一个组件和一个模型,都是使用默认生成器创建的,如下所示:

donejs add component storyBoard story-board
donejs add supermodel story
我在这里留下了一个示例项目:

如果您使用
donejs develop
运行此示例并转到,您将看到如下内容:

donejs add component storyBoard story-board
donejs add supermodel story

问题在于,无论何时更改任何故事的页数(输入框)值,总和都不会更新其值。我尝试了几乎所有的事情,从承诺到已经解决的承诺,但似乎什么都做不到


不知何故,当这些值中的任何一个发生变化时,似乎根本就没有更新触发器。我还尝试将结果设置为列表(
can.List
),但没有成功。

问题似乎是
elem.pages
应该是
elem.attr(“pages”)

下面是一个适用于我的代码版本:

export const ViewModel = Map.extend({
  define: {
    storyPromise: {
      get: function() {
        return Story.getList({});
      }
    },
    stories: {
      get: function(last, resolve) {
        this.attr("storyPromise").then(resolve);
      }
    },
    sum2: {
      get: function() {
        var total = 0;
        if (this.attr('stories') !== undefined) {
          this.attr('stories').each(function(elem) {
            total += parseInt( elem.attr("pages") );
          });
        }
        return total;
      }
    }
  }
});

您必须使用
.attr
,否则,
sum2
不知道
页面
属性何时更改。

gitter中有讨论,您可以在此处查看: