簡體   English   中英

Knockoutjs不會更新ViewModel

[英]Knockoutjs does not update viewmodel

在我看來,我有文件輸入:

<input type="file" class="file-input" name="file_source" size="40"  onchange=''>

以及跨度,其中顯示了上傳的文件名:

<span class='label label-info' id="upload-file-info" data-bind="text: image"></span>

$(".file-input").change(function() {
           var elem = $("#upload-file-info");
           elem.html = $(this).val();
        });

該范圍與敲除js綁定在一起:

viewModel = {
image: ko.observable()
}

ko.applyBindings(viewModel);

問題是,當我更新跨度文本時,可觀察對象不會更新。 盡管我在跨度中有文件名,但是可觀察的是空的。 跨度文本更改時,如何使可觀察對象進行自我更新?

根據對您的問題的評論,我做了個小提琴 這應該工作:

jQuery(document).ready(function ($) {
    'use strict';

    $(".file-input").change(function () {
        var elem = $("#upload-file-info");
        viewModel.image($(this).val());
    });

    var viewModel = {
        image: ko.observable()
    };
    viewModel.image.subscribe(function (value) {
        alert(value);
    });

    ko.applyBindings(viewModel);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM