通过从弹出框中获取输入来重命名对象

Rename object by taking input from a popup

本文关键字:输入 获取 重命名 对象      更新时间:2023-09-26

下面是我的代码:

<button ng-repeat="(name,content) in contacts" ng-dblclick="rename(name)">{{ name }}</button>

$scope.rename = function() {
    $scope.newname = prompt("Please reenter file name");
    // ... *incomplete*
}

我需要重命名函数的逻辑,该函数以对象的名称作为输入,并可能创建一个具有新名称和与先前相同值的对象,并删除旧对象。

当您可以编辑对象时,为什么要删除对象然后创建一个新对象呢?

您可以使用$index,假设contacts是包含具有name属性的对象的数组:

<button ng-repeat="contact in contacts" ng-dblclick="rename($index)"> {{ contact.name }} </button>

$scope.rename = function(idx) {
    var newName = prompt("Please reenter file name");
    $scope.contacts[idx].name = newName;
 }

另一个选项是将对象本身发送给函数:

<button ng-repeat="contact in contacts" ng-dblclick="rename(contact)"> {{ contact.name }} </button>

$scope.rename = function(contact) {
    var newName = prompt("Please reenter file name");
    contact.name = newName;
 }