1

如本例所示,我使用剔除分页网格。该动态创建一个网格表,我想在单击标题文本后对其进行一些更改以使用排序功能。

代替

<th data-bind="text: headerText "> </th>

我想看看这个:

<th>
    <a data-bind="click: MyPage.sort, text: headerText" ></a>
</th>

但它不起作用。如果我称它为 click: console.log(MyPage.sort)“未定义”,然后click: console.log(MyPage.sort())

Object function MyPage() {
    // body of function
    ...
    self.sort = function(item, event) {
        console.log('qwerty')
        ...
    }
    ... } has no method 'sort'

在这个例子中,有什么方法可以调用“排序”吗?还是有其他方法(除了改变knockout.simpleGrid.1.3.js)?

4

1 回答 1

1

这是一个解决方案...

绑定后 - 使用 jquery 获取标题并将 onclick 事件链接到 viewModel。

var headers = $('.ko-grid').find('th');
headers[0].onclick = function() { viewModel.sortByName(); };
headers[1].onclick = function() { viewModel.sortBySales(); };
headers[2].onclick = function() { viewModel.sortByPrice(); };

工作示例...

http://jsfiddle.net/2JxZA/1/

于 2013-10-16T09:53:36.723 回答