我有一个对象:
NAMESPACE.SOMEOBJECT.VALUE = 0
其他一些外国脚本拥有并根据我无权访问的事件更改该值。我知道不同页面上的不同事件会改变该值。我无法编辑控制该对象的 .js。有谁知道我如何监听该特定对象,然后在该值发生变化时运行一个函数?
我无法添加新库或任何外部脚本。我正在使用 Backbone、require.js 和 jQuery。
如果我要使用backbone.model并在我的模型中添加对此对象的引用,然后在我看来我要监听我的模型,这会告诉我该对象是否已更新吗?如果是这样,我会这样做吗?
我确实有权访问页面上的 ID,该 ID 允许我访问具有我正在查找的值的 DIV。请记住,每次我的对象值更新时,我都需要知道它是否已更新。
最佳答案
不幸的是,没有办法“在模型中添加对此对象的引用”,因为这只是另一种说法,即某些东西应该“监听”对象上的更改。为了使模型触发 change
事件,其属性之一必须更改,并且除了调用模型的 set
方法或(重新)从服务器端获取(更改的)数据。
轮询对象而不是监听事件怎么样?您可以使用setInterval
定期查询相关值并跟踪其变化。如果值发生变化,您可以调用所需的行为。
如果这非常适合您的应用程序设计,您还可以将此功能包装在 Backbone 模型中:在 model's initialize / constructor 中使用 setInterval
开始定期轮询该值,并使用 set
将其复制到模型的属性之一。 Backbone 将为您跟踪状态,并且当(且仅当)值发生变化时,模型将触发 change
事件。
希望这有帮助。
关于javascript - 使用 BackBone 查看 javascript 对象更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23461507/