【问题标题】:Knockout update observable淘汰赛更新可观察
【发布时间】:2015-01-25 22:10:09
【问题描述】:

我正在扩展应用程序,其中设置了想要动态显示文件上传的 knockout.js。这是我的代码

function Search() {
    var self = this; 
    //many different items set

    self.totalSize = ko.observable(total);
    self.uploadedSize = ko.observable(uploaded);
}

var uploadProgress;

var total = 100;
var uploaded = 0;

function runUploadProgress() {
    uploadProgress = setInterval(function () {
        callWebApi({
            api: webapi.getUploadProgress,
            data: null,
            cache: false,
            success: function (json) {
                total = json.TotalBytes;
                uploaded = json.TransferedBytes;
                console.log(total + " - " + uploaded);
            }
        });
        if (total == uploaded) {
            stopUploadProgress();
        }
    }, 1000);
    return true;
}

function stopUploadProgress() {
    clearInterval(uploadProgress);
}

如何使用新值更新 totalSize 和 UploadedSize 可观察值?想如果我改变 total 的值并上传它会改变 observables 的值吗?

【问题讨论】:

    标签: javascript knockout.js observable


    【解决方案1】:

    创建 observable 后,您必须更改 observable 值

    searchInstance.totalSize(json.TotalBytes);
    searchInstance.uploadedSzie(json.TransferedBytes);
    

    【讨论】:

    • 确实如此。 @Bartosz - 请注意,只有 totaluploaded 用于初始化 observables - 淘汰的 observables 完全不知道变量本身,也没有引用它们。
    猜你喜欢
    • 2021-09-19
    • 2018-03-30
    • 2013-05-01
    • 2014-11-05
    • 2012-09-08
    • 2012-07-07
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多