使用 ES6 中的新符号类型,您可以在对象上设置不可迭代的属性。但是,使用 Knockout 时,默认情况下不会观察到这些符号。
可以绑定符号的值,但它永远不会更新,因为它没有添加到可观察对象中。
是否有人能够解决此问题并强制淘汰赛来观察符号?
答案 0 :(得分:2)
看起来Durandal的observable插件与Knockout-ES5插件的实现方式类似。当应用于视图模型时,它只会创建包含在getter / setter中的observable,以获取对象上可枚举的属性。
observable.defineProperty不接受enumerable
作为参数,但确实有configuration: true
。这意味着我们可以使用observable.defineProperty
(这将使属性可枚举),但随后立即使属性不可枚举...
Object.defineProperty(this, 'myProp', { enumerable: false });