knockoutjs 中两个可观察对象的相同数据绑定值
Same data-bind value for two observable in knockoutjs
这是我的HTML代码:
<textarea name="Question" id="Question" data-bind="value:questionObj.questionText></textarea>
这是我的JavaScript代码:
questionObj = {
questionText: ko.observable(' '),
title: ko.observable(' ')
};
questionText 数据绑定到 textarea,值在 bothway.I 中可见,希望 questionObj.title 在 questionObj.questionText 中获得相同的值。有什么方法可以绑定吗?
你的意思是你希望两个可观察值具有相同的值?您可以为此使用 pureComputed observable。
像这样更改您的可观察定义:
questionObj = {
questionText: ko.observable(' ')
};
questionObj.title = ko.pureComputed(function(){
return questionObj.questionText();
}, questionObj);
这解决了我的问题....
questionObj = {
questionText: ko.observable(' '),
title: ko.observable(' ')
};
questionObj.title(questionObj.questionText);
@Iam_NSA 回复:
你好。
虽然您可能已经获得了您正在寻找的功能,但值得注意的是,您所做的是 2 个 observables,然后您将对其中一个 observables 的引用分配给另一个 observables,而不是它的值。除非你是故意这样做的,否则你不会在这里四处询问:P,你应该避免它。
本质上你只有一个 observable,这相当于将同一个 observable 绑定到 2 个不同的元素。
您最好像这样创建一个纯计算或订阅:
questionObj = {
questionText: ko.observable(' '),
title: ko.observable(' ')
};
questionObj.questionText.subscribe(function(val){
questionObj.title(val);
});
这是我的HTML代码:
<textarea name="Question" id="Question" data-bind="value:questionObj.questionText></textarea>
这是我的JavaScript代码:
questionObj = {
questionText: ko.observable(' '),
title: ko.observable(' ')
};
questionText 数据绑定到 textarea,值在 bothway.I 中可见,希望 questionObj.title 在 questionObj.questionText 中获得相同的值。有什么方法可以绑定吗?
你的意思是你希望两个可观察值具有相同的值?您可以为此使用 pureComputed observable。
像这样更改您的可观察定义:
questionObj = {
questionText: ko.observable(' ')
};
questionObj.title = ko.pureComputed(function(){
return questionObj.questionText();
}, questionObj);
这解决了我的问题....
questionObj = {
questionText: ko.observable(' '),
title: ko.observable(' ')
};
questionObj.title(questionObj.questionText);
@Iam_NSA 回复:
你好。 虽然您可能已经获得了您正在寻找的功能,但值得注意的是,您所做的是 2 个 observables,然后您将对其中一个 observables 的引用分配给另一个 observables,而不是它的值。除非你是故意这样做的,否则你不会在这里四处询问:P,你应该避免它。 本质上你只有一个 observable,这相当于将同一个 observable 绑定到 2 个不同的元素。
您最好像这样创建一个纯计算或订阅:
questionObj = {
questionText: ko.observable(' '),
title: ko.observable(' ')
};
questionObj.questionText.subscribe(function(val){
questionObj.title(val);
});