【问题标题】:How to invoke method when foreach is rendered using Knockoutjs使用 Knockoutjs 呈现 foreach 时如何调用方法
【发布时间】:2013-02-17 07:06:11
【问题描述】:

我使用 Knockout.js 通过 foreach 绑定创建了一个项目列表。当 foreach 绑定的所有项目都呈现后,我想搜索一个名为“focused”的特定类的项目并将窗口滚动到该项目。

这只会在页面加载时发生一次,因为我不添加或删除项目。

我该怎么做?

【问题讨论】:

    标签: javascript binding knockout.js foreach


    【解决方案1】:

    你可以使用foreach绑定的属性afterRender。

    <div data-bind="foreach: { data: items, afterRender: doSomething }">
        <div data-bind="text: $data">
    </div>
    

    您的视图模型:

    var vm = {
       doSomethingInvoked: false,
       items: ko.observableArray(['apple', 'banan']),
       doSomething: function (elements) {
           if (!doSomethingInvoked) { // prevent invoking multiple times
               var offsetTop = $(elements).filter('.focus').offset().top;
               $('html,body').scrollTop(offsetTop);
               doSomethingInvoked = true;
           }
       }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      相关资源
      最近更新 更多