如何更改ng-select选项以响应模型中的更改?

时间:2016-09-14 06:33:11

标签: angularjs

我有一个输入字段和一个ng-select彼此相邻。两者都支持相同的数据。由于select中有大量项目,如果我知道所需的值,我可以使用输入字段。

但是当我更改输入字段的值时,ng-select不会更改,直到我更新数据库中的数据并再次检索数据。

当我更改ng-select中的值时,输入字段中的值会立即更改。

有没有办法可以让ng-select跟踪对底层模型的更改并做出响应?

这是我的代码:

        <div class="p0r2 textAlignCenter verticalAlignTop">
            <textarea class="h1r5 pl0r3 lh1r5 resizeNone w2r"
                      ng-change="phs.phrasesStatus = Status.Dirty; row.statusId = Status.Dirty"
                      ng-model="row.categoryId"
                      maxlength="3" size="3"
                      ng-required="true"></textarea>
        </div>
        <div class="p0r2 textAlignCenter verticalAlignTop"
             ng-if="!phs.show">
            <select class="select"
                    convert-to-number
                    ng-change="phs.phrasesStatus = Status.Dirty; row.statusId = Status.Dirty"
                    ng-options="option.id as option.name for option in phs.phraseCategory.data"
                    ng-model="row.categoryId"></select>
        </div>

以下是使用Typescript的数据类型:

interface IEnumServiceGetData {
    data: IMapIdName[];
    dataPlus: IMapIdName[];
    dataMap: {};
    dataMapPlus: {}; 
    name: any;
}
interface IMapIdName {
    id: number; name: string
}

1 个答案:

答案 0 :(得分:1)

您可能正在使用id的数字版本。当您在输入中选择一个值时,它将被存储为字符串。如果select id是数字,则不匹配。使用字符串版本选择id,如下所示:

    $scope.options = [{id:"1", name:"A"},{id:"2", name:"b"},{id:"3", name:"c"}]