2016-01-10 27 views
2

我是Angular的新手,想要在列表中创建一个克隆按钮。具有独特名称的克隆对象Angular

当我点击这个按钮,它会克隆对象,并添加了一些对象名称:

“新的测试” - 将改为“新的测试(2)”等等...

它需要每次检查最后3个字母并每次检查所有对象。

有没有图书馆这样做?

+1

可您在此处提供的示例代码? –

回答

0

我认为你不需要任何lib。基本上,它需要一个循环来查找重复项。看一个例子:

angular.module('myApp', []) 
 
.controller('MyCtrl', function($scope){ 
 
    $scope.items = ['Sample item']; 
 
    $scope.suggestedNewName = 'Sample item'; 
 
    var isNameOccupied = function(name) { 
 
    return $scope.items.indexOf(name) >= 0; 
 
    }; 
 
    $scope.addNewItem = function(){ 
 
    var suggestedName = $scope.suggestedNewName; 
 
    var newName = suggestedName; 
 
    for (var i = 2; isNameOccupied(newName); i++) { 
 
     newName = suggestedName + " (" + i + ")"; 
 
    } 
 
    $scope.items.push(newName); 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp"> 
 
    <form ng-controller="MyCtrl" ng-submit="addNewItem()"> 
 
    <ul> 
 
     <li ng-repeat="item in items">{{ item }}</li> 
 
    </ul> 
 
    <label>Suggested name for new item:</label> 
 
    <input type="text" ng-model="suggestedNewName"> 
 
    <button type="submit">Add new item!</button> 
 
    </form> 
 
</div>