删除可观察变量,单击时不更改其值



我不知道为什么我的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标签

最新更新