0

これを尋ねる他の質問は見られず、適切なリソースが見つかりません。うまくいけば、誰かが私を正しい方向に向けることができます-

var archiveParent = function () {
    var msg = 'Archive parent "' + parent().name() + '" ?';
    var title = 'Confirm Archive';
    isArchiving(true);
    return app.showMessage(msg, title, ['Yes', 'No'])
        .then(confirmArchive);

    function confirmArchive(selectedOption) {
        if (selectedOption === 'Yes') {
            parent().archived() === true;
            save().then(success).fail(failed).fin(finish);

            function success() {
                router.navigateTo('#/parents');
            }

            function failed(error) {
                cancel();
                var errorMsg = 'Error: ' + error.message;
                logger.logError(
                    errorMsg, error, system.getModuleId(vm), true);
            }

            function finish() {
                return selectedOption;
            }
        }
        isArchiving(false);
    }

};

var save = function () {
    isSaving(true);
    return datacontext.saveChanges().fin(complete);

    function complete() {
        isSaving(false);
    }
};

ビュー モデルで Knockout オブザーバブルのプロパティを変更していますが、データ コンテキストの EntityManager で KO が hasChanges() プロパティを起動していないように見えるため、Breeze は保存する変更を「認識」していません。私はばかげたことを見落としていると確信しています。何かアイデアはありますか?

4

1 に答える 1

3

それは次のコード行であると思います:

parent().archived() === true;

この行で何をしたいですか?

アーカイブされたプロパティに true の値を与えたい場合は、次のことを行う必要があります。

parent().archived(true);
于 2013-04-29T18:32:30.817 に答える