javascript - knockout : How to run script after inserting data in observable array

标签 javascript data-binding knockout.js knockout-2.0

我有一个画廊列表:

 <div class="gallery">
            <a href="#" class="next">next</a>
            <a href="#" class="prev">prev</a>

            <div class="frame">
                <ul data-bind="foreach: designs">
                    <li>
                        <span class="text">№<span data-bind="text: getID()"></span> <span data-bind="text: getName()"></span></span>
                         <img src="images/img01.jpg" width="182" height="102" alt="image description"/>
                    </li>
                </ul>
            </div>

  </div>

JS

Models.Design = function () {...}

function ViewModel(){   
    this.designs = ko.observableArray();


    this.addDesign = function (_id, _name, _image, _video) {

        var design = new Models.Design;

        design.setID(_id);
        design.setName(_name);

        this.designs.push(design);
   };

   this.addDesign(1, "Image 1");
   this.addDesign(2, "Image 1");
   this.addDesign(3, "Image 1");
 // at this moment there is no elements in DOM
}

问题:我需要在哪里编写$('.gallery').galleryScroll();来更新我的图库 slider ?

最佳答案

只需订阅可观察的内容即可。对于集合的任何可见*更改,都会调用您的回调。

function ViewModel() {
    this.designs = ko.observableArray();
    this.designs.subscribe(function () {
        $('.gallery').galleryScroll();
    });

    // ...
}

* 可见意味着您对可观察对象执行操作,而不是直接对底层数组执行操作。

关于javascript - knockout : How to run script after inserting data in observable array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676220/

相关文章:

javascript - Mongoose 通过键获取最高值

wpf datatrigger看不到用户控件属性

c# - WPF 多重绑定(bind)失败。为什么?

javascript - knockoutjs 验证 - 重新计算验证规则

javascript - KnockoutJS selectedOptions observableArray 对象在更改事件中为空

javascript - Laravel 6-Bootstrap 为什么 Popover 在没有错误的情况下不起作用?

javascript - 使用 jquery 获取选择值和单选值

javascript函数和逻辑运算

c# - DataBindingComplete 被多次调用

javascript - knockout js : Code to bind an object rather than individual values