2014-04-01 53 views
1

api使用Knockout.js。我要绑定下拉列表dynamically.Here我用淘汰赛使用Knockout.js绑定问题?

function LeadModel() { 

     var that = this; 
     that.Saleslist = ko.observableArray("") //Sales list is my model 



    } 

    function SalesEmpNm() { 

     var that = this; 
     that.LeadModel = new LeadModel(); 
     that.reset = function() { 

      that.LeadModel.Salesid(""); 
      that.LeadModel.SalesNme(""); 
     }; 
     that.submit = function() { 

      var json1 = ko.toJSON(that.LeadModel); 
      $.ajax({ 
       url: '/api/values', 
       type: 'GET', 
       dataType: 'json', 
       data: json1, 
       contentType: 'application/json; charset=utf-8', 
       success: function (data) { 
        var message = data.Message; 
       } 
      }); 
     }; 
    }; 
    var _vm = new SalesEmpNm(); 
    $(function() { 
     ko.applyBindings(_vm); 
    }); 

这里我的文字

销售名称代码:

<select id="ddlSales" name="ddlSales" 
     data-bind="options:$root.LeadModel.Saleslist, Value:'Salesid', 
      Text:'SalesNme', Value:LeadModel.Salesid"> 
      </select> 

普莱斯建议我要动态地结合下拉列表答案。 谢谢& Regards

+0

参考链接 http://knockoutjs.com/documentation/selectedOptions-binding.html http://stackoverflow.com/questions/15825539/knockout- js-binding-to-dropdownlist – user3217843

+0

你能告诉你如何在你的可观察数组中填充动态值吗? –

+0

从值控制器我传递值使用返回值,这是通过脚本,我已发布绑定值。请建议我解决此问题 – user3483538

回答

2

我看不到你在哪里填充你的Saleslist数组。 然而,下面应该工作你的情况:

<select id="ddlSales" name="ddlSales" 
data-bind='optionsCaption: "[Please Select]", options: _vm.LeadModel.Saleslist(), optionsText: "SalesNme", optionsValue: "Salesid"'></select> 

注意,我绑定像_vm.LeadModel.Saleslist()

另一个问题数组中你的模型是LeadModel没有SalesidSalesNme属性,您将在reset访问功能:

that.reset = function() { 
    that.LeadModel.Salesid(""); 
    that.LeadModel.SalesNme(""); 
}; 
+0

在值控制器iam中获取Saleslist数组,但不幸的是 在我的情况下不起作用。 – user3483538

+0

我在我的leadmodel类中拥有这些属性。一切看起来很完美,但数据没有约束力任何脚本问题?我很困惑 – user3483538

+0

似乎是脚本问题。检查浏览器控制台的任何。 –

0

问题可能是你有一个空字符串初始化您,不支持。您可能只需将其更改为ko.observableArray()

但作为@Ahsan说,有可能是在你的粘贴代码,其他的问题,如不确定SalesidSalesNme,和你的success处理程序不填充Saleslist,我会一直预期。

+0

是的,你的权利,我没有得到脚本中的数据,你可以请我建议我哪里可能是错误的脚本,但在API控制器即时获取数据。 – user3483538

0

也许这个问题是因为你没有在你的Saleslist中提供任何值。

这样就解决了这个问题:

this.Saleslist = ko.observableArray([ 
    { Salesid: 1, SalesNme: "One" }, 
    { Salesid: 2, SalesNme: "Two" } 
}); 
+0

它的静态值很好,但动态值不会到来。 – user3483538