Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 击倒JS-如何正确绑定一个可观察的array_Javascript_Knockout.js - Fatal编程技术网

Javascript 击倒JS-如何正确绑定一个可观察的array

Javascript 击倒JS-如何正确绑定一个可观察的array,javascript,knockout.js,Javascript,Knockout.js,请看一看这个例子。 我想知道如何绑定可观察数组的值。我知道上面例子中的问题,就是这条线 <p>Editing Fruit: <input data-bind="value: $data" /></p> 编辑水果: $data是实际值,而不是通常绑定的可观察函数。 这似乎应该是一个非常直接的过程,但我无法理解 在其他情况下,我使用了可观察数组,并将一个可观察对象作为可观察数组的每个元素。我想知道如何让它与可观测阵列一起工作 谢谢如果要将读/写绑定到数组或o

请看一看这个例子。

我想知道如何绑定可观察数组的值。我知道上面例子中的问题,就是这条线

<p>Editing Fruit: <input data-bind="value: $data" /></p>
编辑水果:

$data是实际值,而不是通常绑定的可观察函数。 这似乎应该是一个非常直接的过程,但我无法理解

在其他情况下,我使用了可观察数组,并将一个可观察对象作为可观察数组的每个元素。我想知道如何让它与可观测阵列一起工作


谢谢

如果要将读/写绑定到数组或observableArray中的项,则它们必须是对象的属性。否则,
$data
将是未包装的可观察对象,KO无法写入实际可观察对象

您必须执行以下操作:

var ViewModel = function(myFruit) {
    var observableFruit = ko.utils.arrayMap(myFruit, function(fruit) {
        return { name: ko.observable(fruit) }; 
    });
    this.fruit = ko.observableArray(observableFruit);
};


ko.applyBindings(new ViewModel( ["Apple", "banana", "orange"] )); 
以下是一个示例:


单个的水果不一定需要是可见的,除非您需要您的UI对值的变化做出反应(您的样本确实需要做出反应,因为您正在显示水果的只读列表)。

以下是我的技巧:

<!-- ko foreach: list().map(observable => ({ value: observable })) -->
    <input type="text" data-bind="value: value">
<!-- /ko -->


A跟进-什么是显示可观察阵列长度的正确方法?以小提琴为起点,您需要进入底层数组,如
fruit()。length