1
使用ES6中的新符号类型,可以设置对象的不可迭代属性。但是,在使用敲除时,默认情况下不会观察到这些符号。可以进行基因敲除以观察ES6符号吗?
可以绑定符号的值,但从不更新它,因为它不会添加到可观察对象中。
有没有人能够解决这个问题,并强制敲除观察符号?
使用ES6中的新符号类型,可以设置对象的不可迭代属性。但是,在使用敲除时,默认情况下不会观察到这些符号。可以进行基因敲除以观察ES6符号吗?
可以绑定符号的值,但从不更新它,因为它不会添加到可观察对象中。
有没有人能够解决这个问题,并强制敲除观察符号?
看起来Durandal的可观察插件的实现方式与Knockout-ES5插件类似。当应用于视图模型时,它只会创建包含在getter/setter中的可观察对象,以获取对象上可枚举的属性。
observable.defineProperty不接受enumerable
作为参数,但它确实有configuration: true
。这意味着我们可以使用observable.defineProperty
(这将使得物业枚举),但随后立即作出财产不可枚举的,像这样......
Object.defineProperty(this, 'myProp', { enumerable: false });
在你需要的符号只能定义非枚举的属性的情况下:可以也可以通过'defineProperty'和'enumerable:false'描述符来设置它们。 – nils
您可以展示ES6代码,以及您如何进行绑定? – JotaBe
你的意思是不可枚举的属性? – CrimsonChris