【问题标题】:Set ng-model for dropdown which generated from dictionary in Angular为从 Angular 中的字典生成的下拉菜单设置 ng-model
【发布时间】:2014-06-25 11:01:09
【问题描述】:

我有从 Dictionary(int,string) 中检索数据的下拉菜单:

<select 
    class="form-control" 
    data-ng-model="model.Case.OwnerUserId" 
    data-ng-options="key as value for (key,value) in model.OwnerUsers" >
</select>

model.Case.OwnerUserIdint 值,我尝试通过ng-model 指令绑定并为下拉菜单设置选定值。但下拉菜单未选中。在这种情况下我做错了什么?

更新:部分视图模型数据

public class CaseViewModel
{
    public Case Case { get; set; }

    public Dictionary<int,string> Facilities { get; set; }

    public Dictionary<int, string> OwnerUsers { get; set; }
}

public class Case
{
    public int CaseId { get; set; }

    public int ResidentId { get; set; }

    public int OwnerUserId { get; set; } ...

序列化后的JS模型示例:

{
"Case": {
    "CaseId": 27,
    "ResidentId": 4478,
    "OwnerUserId": 15,
    "CreatedByUserId": 20,
    "LastUpdatedUserId": null,
    "ReceivedDate": "2014-06-23T12:49:54.713", ...


"OwnerUsers": {
    "35": "a.markov",
    "15": "a.zaharov",
    "20": "e.martynov",
    "36": "a.oryel",
    "40": "test01"
}

【问题讨论】:

  • 你能提供你的模型样本吗?不是使用真实数据,而是使用您上面描述的属性。
  • 我指的是 Angular 使用的 js/JSON 对象,而不是 .net 后端。测试你的角度代码的东西。
  • 浏览器的网络在说什么?将哪些数据发送到角度模型?
  • 好的。但我使用简单的 jQuery.parseJSON($("#modelData").val()) 模型数据是从隐藏字段中获取的,值为 Html.Raw(JsonConvert.SerializeObject(Model))
  • 没关系,给我一个例子,让我继续。我必须以某种方式用你的模型结构测试你的例子。把console.log( jQuery.parseJSON($("#modelData").val()) )的结果给我

标签: javascript .net angularjs dictionary


【解决方案1】:

您正在寻找的是:

data-ng-options="key for (key , value) in mymodel.Case.OwnerUsers"

小提琴:http://jsfiddle.net/g8Xtp/

【讨论】:

  • “in”而不是“is”
【解决方案2】:

如果您想同时包含值和描述,请尝试以下操作

key as value for (key , value) in CONTROLLER.DICTIONARY

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 2018-03-27
    • 2017-01-17
    • 2016-08-03
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多