【问题标题】:prepopulate dropdown value with selected index from JSON使用来自 JSON 的选定索引预填充下拉值
【发布时间】:2014-04-03 15:25:18
【问题描述】:

我正在尝试实现一个小功能。我有带有文本框的行,所有值的下拉列表将作为来自服务器端的数组。我可以将所有数据绑定到客户端,除了下拉列表的选定值(它始终指向下拉列表中的第一个值)。请告诉我如何使选定的值变为活动状态,从服务器端填充数据时。

 <select class="ddText" id="selType" data-bind="options:typeDropDown, optionsText: 'Value', optionsValue: 'Value',value : Type,attr: { name: 'age',id : 'str_'+$index()}, uniqueName:true" "></select>

我已经尝试在上面的代码中为值绑定添加属性。像这样(值:Type.Value - 从 JSON 填充时有效,同时创建新行时出现错误“找不到类型的属性值”

Dropdowns and JSON Objects and Binding the selected value

由于我具有创建动态行的功能,因此在创建新行时出现错误。

我需要重建我的阵列吗?

更新

function ViewModel() {
    var self = this;

    //Available types - which will come from serverside
    self.typeDropDown = ko.observableArray(InitialData);

    self.typeValue = ko.observable();

//Explicitly Adding new Row
    self.Inputs = ko.observableArray([new Item(self.typeDropDown[0], '', '', '')]);

    self.removeRow = function (Item) {
        self.Inputs.remove(Item);
    },
    self.addNewRow = function () {
        //push will add a new element to the container without modifying much in DOM
        self.Inputs.push(new Item(self.typeDropDown[0], '', '', ''));
    }

【问题讨论】:

  • 请发布您的视图模型。
  • @Tuan:更新了我的问题
  • 我还需要看看你是如何定义Item和InitialData的。
  • 它是一个 srray 0:对象 ID:“24”键:“Str”值:“SAAN1”1:对象 ID:“25”键:“Str”值:“NASA1”2:对象 ID:“26”键:“Str”值:从浏览器捕获的“Object1”。

标签: jquery knockout.js


【解决方案1】:

该值绑定到 Type,但您的 ViewModel 函数中没有定义 Type 属性。

如果您添加以下内容,它应该可以工作:

self.Type = ko.observable("NASA1"); 

到您的视图模型。

请参阅此JSFiddle 以获取示例。

【讨论】:

  • 谢谢,我会尽力告诉你的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 2017-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多