【问题标题】:Knockout Options Binding get Value淘汰赛选项绑定获取值
【发布时间】:2013-12-06 04:46:12
【问题描述】:

我正在努力获取选项绑定的选定值。

这是(简化的)代码:

HTML

  <div data-bind="foreach:organizations" class="accordion " id="accordionOrg">
       [...]
    <table>
       <thead>
         <tr>
             <th>Billing Address</th>
             [...]
             <th></th>
         </tr>
       </thead>
       <tbody>
          <tr> 
             <td>
               <select data-bind="options: organizationAddresses, optionsText: 'address', value:'organizationAddressId'"></select> 
             </td>
             <td>
                <div data-bind="click: $root.addOrg" class="btn btn-small  btn-block"></div>
             </td>
          </tr>
       </tbody>
    </table>
  </div>

每个组织都有一个 ICollection 地址: C# 模型

public class Organization
{
    public int OrganizationId { get; set; }
    public string Name { get; set; }
    public string SapId { get; set; }
    public string UserId { get; set; }
    public bool Deleted { get; set; }

    public ICollection<OrganizationAddress> OrganizationAddresses { get; set; }

}

视图模型:

var organizations = ko.observableArray(); 
var vm = {
    organizations: organizations,
    activate: activate        
};

return vm;

function addOrg(organization) {
   //here I need the selected value
}

一切正常我只是不知道如何获得选定的值。 任何帮助表示赞赏!

【问题讨论】:

  • 一目了然,我发现您可能想为organizationAddressId 使用optionsValue 绑定参数。你指的是值和值……你想要一个地址还是多个。
  • 抱歉给您带来了困惑。我想要一个地址。我在我的应用程序中提到了“值”,用户可以选择多个地址(账单、交付等)。为简单起见,我省略了其他

标签: knockout.js


【解决方案1】:

啊,哈哈,我想得太远了……我完全忘记了 Jquery。随着

选项值

绑定我可以通过以下方式获取值:

 $('#' + organization.organizationId()).val();

感谢您的输入 Origineil! 有时你必须写下问题才能找到答案:)

【讨论】:

  • 如果你不想使用 jquery 我已经设置了一个demo。本质上,您在每个组织中添加一个 observable 来保存选定的地址类型(或者可能操纵组织模型以按类型将地址数组分隔为单个地址 - 我无法判断您的 ICollection&lt;OrganizationAddress&gt; 是否存储可用或选定的地址或两者)。您可以使用as 别名访问“当前”组织。那么您的Add 按钮就不需要任何您的淘汰赛绑定尚未设置的其他信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 2013-02-04
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多