【问题标题】:How to update a zero-based index array in ko.observableArray如何更新 ko.observableArray 中从零开始的索引数组
【发布时间】:2016-06-03 16:46:21
【问题描述】:

我是淘汰赛的新程序员。 这里有一个关于 ko.observableArray 练习时的问题。 我为初始数据提供了一个从零开始的索引数组,该数组将在单击按钮时显示为 JSON。 但是当我尝试更新输入字段中的任何值但单击按钮后无法获取新的 JSON 时。

我认为问题在于我的数组中没有索引。单击后如何获取新的 JSON

function ViewModel(inputs){		
  this.inputs = ko.observableArray(inputs);
  
  this.getData = function(){						
    this.jsonData(ko.toJSON(this.inputs));
  };
  
  this.jsonData = ko.observable('');
};
	
	
var initialData =  [ 'Jan', 'Feb', 'Mar', 'etc' ];

var viewModel = new ViewModel(initialData);

ko.applyBindings(viewModel); 
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/2.2.1/knockout-min.js"></script>
<ul data-bind="foreach: inputs">
    <li>
        The current item is: <input type='text' data-bind="value: $data"></b>
    </li>
    
</ul>
<textarea rows='5' cols='60'  data-bind='value: jsonData'> </textarea>
<button data-bind='click: getData'>get Data</button>

【问题讨论】:

    标签: javascript arrays json knockout.js


    【解决方案1】:

    由于 $index,您无法获取此更新后的 JSON

    如果您在“initialData”中添加键值对,您将获得更新的 JSON 数据

    这里是工作代码:

    function ViewModel(inputs) {
        this.inputs = ko.observableArray(inputs);
    
        this.getData = function () {
            this.jsonData(ko.toJSON(this.inputs));
        };
    
        this.jsonData = ko.observable('');
    };
    
    
    var initialData = [{ name: 'Jan' }, { name: 'Feb' }, { name: 'Mar' }, { name: 'etc' }];
    
    var viewModel = new ViewModel(initialData);
    
    ko.applyBindings(viewModel);
    
    
    <ul data-bind="foreach: inputs">
        <li>
            The current item is: <input type='text' data-bind="value: name"><br />
        </li>
    </ul>
    <textarea rows='5' cols='60' data-bind='value: jsonData'> </textarea>
    <button data-bind='click: getData'>get Data</button>
    

    【讨论】:

    • 那么,这意味着我只能将字典类型放入数组,而不能只放入值?
    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2011-11-11
    • 2014-02-13
    相关资源
    最近更新 更多