2011-11-09 44 views
1

在下面的小提琴中,我希望能够在点击列表中的其中一个水果时设置selectedFruit,但这看起来并不奏效。Knockout.JS - 丢失的上下文?

点击水果后,如果我在Chrome立即窗口中检查viewModel.selectedFruit的值,它会将值设置为viewModel对象而不是绑定的数据项。我究竟做错了什么?看起来某处有上下文丢失?

JSFiddle link

感谢

结论

虽然这有助于追查我在我的主要的应用程序遇到的问题,根本的问题是,在匆忙我忘了使用KO模板foreach绑定在我的<UL>上,而是使用了templ foreach。

回答

1

您的viewModel变量不具有全局范围,因为小提琴的选项设置为onLoad以了解JavaScript的加载方式。如果您将其切换到no wrap (body),那么您将状态良好。

唯一的其他变化是,您可以直接使用$data而不是$data()

http://jsfiddle.net/rniemeyer/LXssJ/10/

+0

非常感谢 - 我知道这将是一件小事。感谢您在KnockMeOut上的努力 - 我是一个常客。 – Sidebp