Typescript 选择中的此选项不正确

Typescript 选择中的此选项不正确,typescript,durandal,Typescript,Durandal,我正在尝试将typescript与Durandal一起使用。我试图让初学者示例使用typescript,它适用于大多数方法和类。然而,在下面的Flickr类中,我在select方法中遇到了一个问题。调用此方法时,似乎这不是Flickr类,而是所选项目。 有人能帮我找出是什么问题吗? 其他方法也如预期的那样工作 亲切问候,, 马尔维 要使“this”引用视图模型,可以执行以下操作(假设flickr.html视图未更改): 更改标记的缩略图上的单击绑定 <a href="#" class="t

我正在尝试将typescript与Durandal一起使用。我试图让初学者示例使用typescript,它适用于大多数方法和类。然而,在下面的Flickr类中,我在select方法中遇到了一个问题。调用此方法时,似乎这不是Flickr类,而是所选项目。 有人能帮我找出是什么问题吗? 其他方法也如预期的那样工作

亲切问候,, 马尔维


要使“this”引用视图模型,可以执行以下操作(假设flickr.html视图未更改):

更改标记的缩略图上的单击绑定

<a href="#" class="thumbnail" data-bind="click:$parent.select">



由于您随后直接在$parent对象(视图模型)上调用select方法,因此视图模型将绑定到“this”。

要使“this”引用视图模型,您可以执行以下操作(假设flickr.html视图未更改):

更改标记的缩略图上的单击绑定

<a href="#" class="thumbnail" data-bind="click:$parent.select">



因为您随后直接在$parent对象(视图模型)上调用select方法,视图模型将绑定到“this”。

+1有趣的一点,我一直想知道人们为什么这样做。现在有道理了:)我目前正在工作,所以无法访问该项目,但今晚将尝试。与此同时,我发现了这个:。我不知道这是不是同样的问题。我喜欢Markus解决方案,因为它不需要更改视图或视图模型,因为重新绑定可以在代码中的单个位置完成。如果您希望进行导航,则可能还需要返回函数的值,例如“单击:函数(项){return$root.openDocument(项);}”我需要用Pager.js+1来做这件事。有趣的是,我一直想知道为什么人们会这样做。现在有道理了:)我目前正在工作,所以无法访问该项目,但今晚将尝试。与此同时,我发现了这个:。我不知道这是不是同样的问题。我喜欢Markus解决方案,因为它不需要更改视图或视图模型,因为重新绑定可以在代码中的单个位置完成。如果您希望进行导航,那么您可能还需要返回函数的值,例如“单击:函数(项){return$root.openDocument(项);}”,我需要使用Pager.js执行此操作
<a href="#" class="thumbnail" data-bind="click:$parent.select">
<a href="#" class="thumbnail" data-bind="click: function (item) { $parent.select(item); }">