我不知道为什么我的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/
答案 0 :(得分:1)
您的getTitle
函数会更新currentTitle的值,而不是更新observable。
尝试:
getTitle = function(){
viewModel.currentTitle("title");
}
答案 1 :(得分:0)
正如@phuzi所说,你没有正确更新observable,但你也需要将所选项目传递给函数:
getTitle = function(item){
viewModel.currentTitle(item.title);
}
见这里:updated fiddle
答案 2 :(得分:0)
更改: getTitle to setTitle。
在viewmodel中包含setTitle。
删除了不必要的'viewmodel'。在约束力。
我建议在viewmodel中使用'selectedArticle'并简单地用
绑定文本 text: chosenArticle.title
PS:请删除jquery标记