knockoutjs中两个observable的数据绑定值相同

问题描述 投票:0回答:3

这是我的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中的相同值。有没有办法同样绑定?

javascript html data-binding knockout.js knockout-2.0
3个回答
0
投票

你的意思是你希望两个可观察值具有相同的值?您可以使用pureComputed可观察的。

像这样改变你的可观察定义:

questionObj = {
   questionText: ko.observable(' ')
};

questionObj.title = ko.pureComputed(function(){
    return questionObj.questionText();
}, questionObj);

0
投票

这解决了我的问题....

   questionObj = {
           questionText: ko.observable(' '),
           title:  ko.observable(' ')
    };

    questionObj.title(questionObj.questionText);

0
投票

@Iam_NSA响应;

嘿。虽然您可能已经获得了所寻找的功能,但值得注意的是,您所做的是2个可观察对象,然后您将其自身的一个可观察对象的引用分配给另一个可观察对象。除非你故意这样做,否则你不会这样做,否则你不会在这里问:P,你应该避免它。实际上,你只有一个可观察的立场,这相当于将相同的可观察量绑定到2个不同的元素。

你最好创建一个纯粹的计算OR订阅,如下所示:

questionObj = {
           questionText: ko.observable(' '),
           title:  ko.observable(' ')
    };

    questionObj.questionText.subscribe(function(val){
        questionObj.title(val);
    });
© www.soinside.com 2019 - 2024. All rights reserved.