我使用了this example中所见的淘汰分页网格。 library动态创建一个网格表,我想在点击标题文本后使用sort函数稍微更改一下。
而不是
<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'
在这个例子中有没有办法调用“sort”?还是有其他方法(除了更改knockout.simpleGrid.1.3.js)?
答案 0 :(得分: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(); };
工作示例......