我有项目清单。它们是保存在itemArray中的对象。当您触摸一个按钮时,它会触发ng-click =“ openEditor(item)”。像这样:

<ion-list>
  <ion-item ng-repeat="item in ItemArray" class="item item-avatar" ng-click="openEditor(item)">
    <img ng-src="{{iconMap[item.type]}}">
    <h2>{{item.dateString}}</h2><span>{{item.startTimeString}}</span>
    <p>ASA {{item.priority}}: {{item.itemType}}</p>
  </ion-item>
</ion-list>


然后发生这种情况:

$scope.openEditor =function(item){
   $scope.currentItem = item;
   $scope.modal.show();
}


在模态中

<select ng-model="currentItem.priority">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
        </select>


它在下拉列表中显示了正确的优先级(我已经对很多项目进行了测试)。

问题是-我无法更改!如果尝试尝试,则无法更改下拉菜单中的选项。

我收到此错误:

TypeError: Cannot assign to read only property 'priority' of #<Object>


为什么会这样呢?我想更改优先级,然后将其保存回itemArray和SQL DB中。

最佳答案

听起来您要更改的对象是只读的。您需要调查这是为什么,但是您可以使用

$scope.openEditor =function(item){
   $scope.currentItem = angular.copy(item);
   $scope.modal.show();
}

10-04 22:35