首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果模型已经包含项目,md-chip可以添加重复项。

如果模型已经包含项目,md-chip可以添加重复项。
EN

Stack Overflow用户
提问于 2016-11-01 17:44:24
回答 1查看 1.3K关注 0票数 0

我有以下代码:

代码语言:javascript
复制
<md-chips ng-model="myModel" md-autocomplete-snap="true"  md-require-match="autocompleteDemoRequireMatch">
                        <md-autocomplete md-selected-item="selected" md-search-text="searchText" md-items="item in myItems| filter:{name: searchText}" md-item-text="item" placeholder="Search ...">
                            <span md-highlight-text="searchText"> {{item.name}}</span>
                        </md-autocomplete>
                        <md-chip-template>
                            <span>
                                <strong>{{$chip.name}}</strong>
                            </span>
                        </md-chip-template>
</md-chips>

我的模型myModel内容如下:

代码语言:javascript
复制
[{"id":"1","name":"Judy Foster"}]

还有我的md之类的东西:

代码语言:javascript
复制
[{"id":"1","name":"Judy Foster"}, {"id":"2","name":"Rudy Foster"}, {"id":"3","name":"Moody Foster"}]

如果我的myModel什么都没有..。它工作得很好,因为它不允许我输入副本。

当myModel已经包含myItems中也存在的项时,它允许复制。

有谁知道如何防止重复的发生吗?

这是jsfiddle https://jsfiddle.net/9xyrktwL/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-01 18:24:53

这是因为您的模型对象和项目列表的第一项不一样,即使它具有相同的属性,它们在内存中也是不同的对象,所以尝试重写控制器以指向同一个对象,如下所示:

代码语言:javascript
复制
var app = angular.module('app', ['ngMaterial']);

app.controller('ctrl', ['$scope', '$filter', function($scope, $filter) {


    $scope.myItems = [{"id":"1","name":"Judy Foster"}, {"id":"2","name":"Rudy Foster"}, {"id":"3","name":"Moody Foster"}];
    $scope.myModel = [$scope.myItems[0]];
}]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40365609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档