aurelia-下拉列表未从加载时的db中选择值

aurelia-下拉列表未从加载时的db中选择值,aurelia,dropdown,Aurelia,Dropdown,我正在使用aurelia,并且有一个下拉列表。它将GroupId正确地传递回我的保存函数,但是在编辑项目时它没有选择任何内容 return this.dataContext.getBaseContent(this.id) .then(baseContent => this.baseContent = baseContent); <dropdown disabled.bind="readonly" options.bind="core.

我正在使用aurelia,并且有一个下拉列表。它将GroupId正确地传递回我的保存函数,但是在编辑项目时它没有选择任何内容

return this.dataContext.getBaseContent(this.id)
                        .then(baseContent => this.baseContent = baseContent);

<dropdown disabled.bind="readonly" options.bind="core.GetVariableGroups()" selected.bind="baseContent.GroupId" />
返回this.dataContext.getBaseContent(this.id)
。然后(baseContent=>this.baseContent=baseContent);
下拉列表的HTML

<div class="chosen-container chosen-container-single" style="width: 877px;" title="">
   <a class="chosen-single chosen-default" tabindex="-1">
      <span>Choose an option...</span>
      <div><b></b></div>
   </a>
   <div class="chosen-drop">
      <div class="chosen-search"><input type="text" autocomplete="off"></div>
      <ul class="chosen-results">
         <li class="active-result au-target" data-option-array-index="1">Option 1</li>
         <li class="active-result au-target" data-option-array-index="2">Option 2</li>
         <li class="active-result au-target" data-option-array-index="3">Option 3</li>
      </ul>
   </div>
</div>

<template>
    <select disabled.bind="disabled" class="form-control" data-placeholder.bind="placeholder" value.bind="selected">
        <option repeat.for="option of options" value.bind="option.Id" text.bind="option.Name"></option>
    </select>
</template>

{"$type":"Admin.Contracts.Pocos.Development.ApplicationVariables.BaseContentModel, Admin.Contracts","Id":441,"GroupId":1,"GroupName":"Option 1"

选择一个选项。。。
    选项1 选项2 选项3
{“$type”:“Admin.Contracts.Pocos.Development.ApplicationVariables.BaseContentModel,Admin.Contracts”,“Id”:441,“GroupId”:1,“GroupName”:“选项1”

我发现了这个问题,不确定如何解决。它已经绑定了值,然后才启动并从数据库中获取数据。我需要它在“完成”时重新绑定,但不确定如何执行。

这是必需的:在构造函数下方添加,您需要触发一个选定的:更新

selectedChanged(){
    // if chosen item isnt = selected then set it
    var currentSelected = $('select', this.element).find(':selected').val();
    if(currentSelected != this.selected) {

        if(this.options.some(o => o.Id == this.selected)){
            $('select', this.element).val(this.selected);
            $('select', this.element).trigger("chosen:updated");
        }
        else{
            // new selected isnt in list of options..
            // set back to prev value
            this.selected = currentSelected;
        }
    }
}

您可以发布一个返回的json示例吗?谢谢。需要更多信息。看起来您没有使用标准的
select
元素。您使用的是什么下拉库?请尝试在中设置您的场景,以便于人们帮助您。我可以问一下为什么会标记此内容吗?不确定我做错了什么似乎是一个错误完全合理的问题,我遇到了同样的问题,我不喜欢公认的答案,
selectedChanged
上的文档在哪里?为什么Aurelia不能为我处理这个问题?所以对于以前的每一个select值,我都必须这样做?这种做法违背了框架的目的。我被困在同一个问题上m、 我有一个选择列表,其中的值要么是真的,要么是假的,我仍然无法让Aurelia根据我绑定到的属性的值从数据库中选择合适的项。非常令人沮丧。