Knockout.js 如何将计算值分配给可观察对象

Knockout.js 如何将计算值分配给可观察对象,knockout.js,Knockout.js,如果ToStringStub是一个计算的,我如何最好地将其当前值分配给EmailList,而不传递任何计算的内容 self.EmailList = ko.observable(self.ToStringStub()); 如果我正确理解了您的需求,并且您希望将ToString Tub(computed observable)分配给EmailList,而不需要创建EmailList observable,只需执行以下操作: self.EmailList = self.ToStringStub;

如果ToStringStub是一个计算的,我如何最好地将其当前值分配给EmailList,而不传递任何计算的内容

  self.EmailList = ko.observable(self.ToStringStub());

如果我正确理解了您的需求,并且您希望将ToString Tub(computed observable)分配给EmailList,而不需要创建EmailList observable,只需执行以下操作:

self.EmailList = self.ToStringStub; //no need to use function parenthesis '()'
现在,上面的代码将自动在ToStringStub上创建一个可观察的电子邮件列表,并且每当你的ToStringStub计算的可观察更改时,你的电子邮件列表也将更改

但是您的EmailList和ToString浴缸总是具有相同的值


你是什么意思,没有任何计算的东西被传递?这应该只传递计算的值,而不传递其他值。您看到了什么?在JSFIDLE中进行一个简单的模拟可以帮助您更好地理解这个问题。通过这样执行计算,您将只获得值。只有在没有很好地执行它的情况下才会出现问题。奇怪的是,在运行上述代码之后,绑定到html控件的self.EmailList只会呈现email@foo.com而不是如果它的->例如email@foo.com,email2@foo.comhmm即使这样也不行。。var test=self.ToStringStub();self.EmailList=ko.可观察(测试);而且测试有正确的数据,我怀疑现在我的问题在于html输入不喜欢,char in->email@foo.com,email2@foo.com. 我只有email@foo.comrendered实际上我想用self.ToStringStub()的当前值初始化self.EmailList(一个可观察的对象),这有意义吗?好的,如果您只想用计算的可观察对象的当前值初始化您的EmailList,那么您的代码(在问题中提到)可以完成这项工作。但请记住,在这之后,计算的可观察对象和您的电子邮件列表可观察对象之间将没有依赖关系。如果你能让我更好地了解你的情况,我就无法更好地判断它是否有意义。是的,这就是我希望并理解它的工作原理,问题在于:email@foo.com,email2@foo.com. 我只有email@foo.com提供