2017-01-07 5 views
1

私は両方とも、このようなデフォルトのジェネレータを使用して作成したコンポーネントとモデルと標準donejsプロジェクトを持っているを使用して正しく更新されない:計算値はdonejs

donejs add component storyBoard story-board 
donejs add supermodel story 

私はここにサンプルプロジェクトを左:https://github.com/riescorp/donejs-promise-iterate

image

0:あなたは donejs developを使用してこの例を実行して http://localhost:8080に行く場合は、このようなものが表示されます

問題は、ストーリーのページ数(入力ボックス)の値を変更すると、その合計値が更新されないことです。私は、約束事からすでに解決された約束まで、ほとんどすべてを試みましたが、何もそのトリックをやっていないようです。

どういうわけか、これらの値のいずれかが変更された場合、更新トリガーはまったくありません。私もリスト(can.List)として結果を設定しようとしましたが、運がありません。

+0

gitterでディスカッションがありました。こちらをご覧ください:https://gitter.im/donejs/donejs?at=586fd523db9cafe9183ba46b – nico

答えて

3

elem.pageselem.attr("pages")である必要があります。ときpagesプロパティの変更それ以外の場合は、sum2は知りませんが、あなたが.attrを使用する必要が

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; 
     } 
    } 
    } 
}); 

は、ここで私のために動作するコードのバージョンです。