我不知道为什么我的currentTitle
在点击时没有改变。
viewModel = {
articles: ko.observableArray([{
id: 1,
title: "Article One",
content: "Content for article one."},
{
id: 2,
title: "Article Two",
content: "Content for article two."},
{
id: 3,
title: "Article Three",
content: "Content for article three."}
]),
currentTitle: ko.observable("old")
};
<div data-bind="foreach: viewModel.articles()">
<div data-bind="text:title,click: getTitle"></div>
</div>
<div data-bind="text: viewModel.currentTitle"></div>
getTitle = function(){
viewModel.currentTitle = "title";
}
ko.applyBindings(viewModel);
将我的代码张贴在此处:http://jsfiddle.net/devnegikec/TBP43/
您的getTitle
函数更新currentTitle的值,而不是更新observable。
尝试:
getTitle = function(){
viewModel.currentTitle("title");
}
正如@phuzi所说,您没有正确更新可观察项,但您也需要将所选项传递给函数:
getTitle = function(item){
viewModel.currentTitle(item.title);
}
请参阅此处:更新的fiddle
http://jsfiddle.net/TBP43/3/
更改时间:getTitle到setTitle。
视图模型中包含setTitle。
删除了不必要的"viewmodel"在绑定中。
我建议在视图模型中有一个"chosenArticle",并简单地将文本与绑定
text: chosenArticle.title
PS:请删除jquery标签