我有一个项目列表。它们是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。
答案 0 :(得分:1)
听起来您尝试更改的对象是只读的。您需要调查这是为什么,但您可以使用
制作对象的副本$scope.openEditor =function(item){
$scope.currentItem = angular.copy(item);
$scope.modal.show();
}