我有以下代码:
<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内容如下:
[{"id":"1","name":"Judy Foster"}]还有我的md之类的东西:
[{"id":"1","name":"Judy Foster"}, {"id":"2","name":"Rudy Foster"}, {"id":"3","name":"Moody Foster"}]如果我的myModel什么都没有..。它工作得很好,因为它不允许我输入副本。
当myModel已经包含myItems中也存在的项时,它允许复制。
有谁知道如何防止重复的发生吗?
这是jsfiddle https://jsfiddle.net/9xyrktwL/
发布于 2016-11-01 18:24:53
这是因为您的模型对象和项目列表的第一项不一样,即使它具有相同的属性,它们在内存中也是不同的对象,所以尝试重写控制器以指向同一个对象,如下所示:
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]];
}]);https://stackoverflow.com/questions/40365609
复制相似问题