0

私はデュランダルを初めて使用し、ビューモデル内で ko.computed メソッドを適用することにあまり成功していません。誰かが正しい構文またはパターンを教えてもらえますか?

プロジェクト全体はhttps://github.com/robksawyer/durandal-todo/blob/master/views/todos.htmlで確認できます。

適用する各計算は、バインド中に次のエラーを受け取ります。

Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.")

ビューモデルとビューをリクエストするcomposeメソッド:

<!--ko compose: { 
        model: router.activeItem, //wiring the router
        afterCompose: router.afterCompose, //wiring the router
        cacheViews: false, //telling composition to keep views in the dom, and reuse them (only a good idea with singleton view models)
        transition: 'fadein'
    }--><!--/ko-->

ビューモデル:

// count of all completed todos
    var completedCount = ko.computed(function () {
        return ko.utils.arrayFilter(todos(), function (todo) {
            return todo.completed();
        }).length;
    });

ビュー https://github.com/robksawyer/durandal-todo/blob/master/views/todos.html

エラーのスクリーンショット ここに画像の説明を入力

4

2 に答える 2

0

私の問題は、コンソール メッセージと Knockout の仕組みの誤解のようです。Durandal TodoMVC - Cannot write a value to a ko.computedで説明を見ることができます。

于 2013-05-16T06:00:20.903 に答える