ngTagsInput"ngrepeat:dupes"和"无法读取属性'替换'未定义"

Rob*_*opp 8 angularjs ng-tags-input

我试图在ngTagsInput中使用自动完成,我收到以下错误:

Error: [ngRepeat:dupes] http://errors.angularjs.org/1.2.9/ngRepeat/dupes?p0=item%20in%20suggestionList.items%20track%20by%20track(item)&p1=undefined
    at Error (native)
Run Code Online (Sandbox Code Playgroud)

要么

TypeError: Cannot read property 'replace' of undefined
    at j (https://localhost:3000/js/plugins/ng-tags-input.min.js:1:5556)
Run Code Online (Sandbox Code Playgroud)

我已经检查了几次,我的查询功能正在返回一个正确的标签数组,而且确实如此.它工作得很漂亮.标签的结构如下所示:

{ 
name: String, 
_id: ObjectId, 
__v: Number, 
active: Boolean, 
display: Boolean, 
createDate: Date
}
Run Code Online (Sandbox Code Playgroud)

我的HTML看起来像:

<tags-input
    ng-model="tags"
    displayProperty="name"
    placeholder="Add a tag">
    <auto-complete source="loadTags($query)"></auto-complete>
</tags-input>
Run Code Online (Sandbox Code Playgroud)

而我的loadTags函数是:

$scope.loadTags = function(query) {

    return $http.get(configService.getApi() + '/tags?conditions=' + urlEncodeObject({name: { $regex: query }}), {
        headers: {
            'x-auth-token': sessionService.getToken()
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

Rob*_*opp 5

displayProperty应该是display-property.卫生署!


Mir*_*age 1

Dupes - 这意味着 ngRepeat 的索引是重复的。你必须使用像

ng-repeat="item in items track by $index"

  • 但是,考虑到所有重复都是由“自动完成”指令处理的,我们应该如何做到这一点呢? (3认同)