md-autocomplete 项目列表?

List of md-autocomplete items?

我有网格-ui,其中单元格是 angular material md-autocomplete

我写了演示:codepen 其中我 运行(仅用于模拟)ng-repeat 并尝试 select 每行不同的值。

但是,每当我更改一项时,所有其他行也会更改。我做错了什么?

我的HTML:

 <tr  layout="row" ng-repeat="item in ctrl.items" flex>
        <td class="sc_color" flex>{{$index+1}}.color</td>
        <td flex>
            <md-autocomplete style="margin-bottom:10px;"
        md-selected-item="item.selectedItem"
        md-search-text="ctrl.searchText"
        md-items="item in ctrl.querySearch(ctrl.searchText)"
        md-item-text="item.display"
        md-min-length="0"
        placeholder="Pick a color">
    <md-item-template>
        <span md-highlight-text="ctrl.searchText" md-highlight-flags="^i">{{item.display}}</span>
    </md-item-template>
</md-autocomplete>
        </td>
    </tr>

我的items:

self.items = [
      {
        selectedItem: 'aa'
      },
       {
        selectedItem: 'bbb'
      }
    ];  

我使用 md-selected-item,但听起来所有项目都一样。

只是因为所有字段都链接到同一个变量 : ctrl.searchtext.

只需要改变这个 :

md-search-text="ctrl.searchText"
md-items="item in ctrl.querySearch(ctrl.searchText)"

由此 :

md-search-text="ctrl['searchText' + $index]"
md-items="item in ctrl.querySearch(ctrl['searchText' + $index])"

Codepen : http://codepen.io/anon/pen/dMPLMb

您可以像这样使用范围变量而不是使用

md-search-text="searchQuery"
md-items="item in ctrl.querySearch(searchQuery)"

在这种情况下,它使用 md-autocomplete 作用域,您无需再担心查询变量。

@pbenard 解决方案适用于没有分页的列表或者您不在第一个索引处插入新项目

codepen demo 我做的,有种类 md-autocomplete、日期选择器和 ng-repeat、tab 和 md-select、

不要像上面的解决方案那样使用 $index,它会与其他选项卡的自动完成混淆。

正确的方法很简单,使用 2 个深层模型,

             $scope.RemoveTreeList = [
                                        {
                                            //'count':5,
                                            'location':'uuuuuuu',
                                            'note':'SHAMEL ASH',
                                            //'selectedSpecie':{'originalObject': {'code': '', name: ''}},
                                            'selectedItem':'aaaaaaaaaaaa'


                                        },
                                        {
                                            //'count':2,
                                            'location':'iiiiiiiiii',
                                            'note':'CAMPHOR TREE',
                                            //'selectedSpecie':{'originalObject': {'code': '', name: ''}},
                                            'selectedItem':'bbbbbbbbbbbbb'
                                        },
                                        {
                                            //'count':1,
                                            'location':'ppppppp',
                                            'note':'PECAN',
                                            //'selectedSpecie':{'originalObject': {'code': '', name: ''}},
                                            'selectedItem':'ccccccccccccc'
                                        }];



 <div ng-repeat="RemoveTree in RemoveTreeList">  

 md-selected-item="RemoveTree.selectedItem" 

 md-search-text="RemoveTree.searchText"

 md-items="item in ctrl.querySearch(RemoveTree.searchText)"