【问题标题】:knockout: How to catch the event when all bindings done on the page?淘汰赛:如何在页面上完成所有绑定时捕获事件?
【发布时间】:2012-09-08 03:14:26
【问题描述】:

我在这里看到类似的问题讨论特定元素绑定的结束,通常建议使用aferRender,但是整个页面绑定完成事件呢?有没有?我需要运行一些不能与绑定并行工作的 jQuery 代码。

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    ko.applyBindings() 是一个阻塞调用。

    为什么不在你执行ko.applyBindings()之后简单地执行你的jQuery代码呢?

    【讨论】:

    • 从技术上讲这可能是一种出路,但在我的情况下,它是一个单独的文件(在 mvc 术语中是单独的部分视图),其中 jQuery 代码假设具有自己的单独逻辑,而 ko.applyBindings( ) 在另一个主页中,我不希望它们尽可能松耦合。
    • @YMC:将 javascript 放在视图中是一种反模式。weblogs.asp.net/dwahlin/archive/2011/10/31/…
    • 我阅读了这篇文章,但老实说,我不明白为什么将 javascript 代码直接放入页面是反模式。据我了解,它只是说如果你有一堆 javascript 代码,将它组织成嵌套闭包更易于维护,我没有笨重的代码,它只有几行代码。
    • @YMC:你看到这个sn-p了吗? 大多数人(包括我自己)在编写 JavaScript 代码时都是通过在 .js 或 HTML 文件中添加一个又一个函数来开始编写 JavaScript 代码的。虽然这种方法肯定没有什么问题,因为它可以完成工作,但在处理大量代码时它会很快失控。当将函数集中到一个文件中时,查找代码可能很困难,重构代码是一项繁重的工作(除非你有像 Resharper 6.0 这样的好工具),变量范围可能成为一个问题,对代码执行维护可能是一场噩梦,尤其是如果你最初没有写它。
    • @YMC:你的代码现在可能并不笨重,但它很可能会在以后被扩展,可能由你以外的开发人员进行扩展,那时它可能成为维护的噩梦。 // 此外,当 JavaScript 代码单独存在于自己的文件中时,它的可读性要高得多。
    猜你喜欢
    • 1970-01-01
    • 2013-09-10
    • 2022-10-17
    • 2017-01-10
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    相关资源
    最近更新 更多