[英]How do I dynamically update a div instantly when an item in a dropdownlist is selected?
[英]How do I instantly see an update after making changes to an item in an observable array?
您的生物財產不可觀察,因此為什么它不會更新。 我進行了一些小更改,使您的Bio可見,因此在您單擊按鈕時更新,而不是在重新加載藝術家https://jsfiddle.net/jpntrx41/時更新 。 更改包括以下幾個方面:
self.artistDetail = ko.observableArray([{
"ArtistId": "1",
"Bio": ko.observable("Jon Secada is a Cuban American singer and songwriter. " +
"Secada was born in Havana, Cuba, and raised in Hialeah, Florida. " +
"He has won two Grammy Awards and sold 20 million albums since his " +
"English-language debut album in 1992")
},
{
"ArtistId": "2",
"Bio": ko.observable("Céline Marie Claudette Dion, CC OQ ChLD is a Canadian " +
"singer, songwriter, businesswoman and occasional actress.")
}
]);
$(function() {
$('#update').click(function(event) {
var updateText = $('#update-bio').val();
if (viewModelA.SelectedArtist()) {
var currText = viewModelB.artistDetail()[viewModelA.SelectedArtist().value - 1].Bio();
viewModelB.artistDetail()[viewModelA.SelectedArtist().value - 1].Bio().replace(currText,
viewModelB.artistDetail()[viewModelA.SelectedArtist().value - 1].Bio(updateText));
}
});
});
盡管上面的代碼滿足您單擊按鈕時自動更新Bio的要求,但您的代碼結構以及Knockout和jQuery的混合讓我有些困惑。 顯然,我不知道您要嘗試執行的操作的全局圖,但是值得回顧一下結構,看看是否可以簡化一下。
這是一個非常快速的工作示例,它使用Knockout從1個視圖模型中運行所有操作http://plnkr.co/edit/3UYAQjJmbdyn1rYxZj9m?p=preview
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.