[英]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的,並且兩個方向的值都是可觀察的。我希望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個可觀察對象,然后將引用分配給它本身的一個可觀察對象,而不是其值分配給另一個。 除非您是故意這樣做的,否則您不會這樣做,否則您將不會在這里問:P,則應避免這樣做。 本質上,您只有一個可觀察的對象,這等同於將相同的可觀察對象綁定到2個不同的元素。
您最好像這樣創建一個純計算或訂閱:
questionObj = {
questionText: ko.observable(' '),
title: ko.observable(' ')
};
questionObj.questionText.subscribe(function(val){
questionObj.title(val);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.