我是 AngularJS 的新手,找不到任何合适的答案。我的应用程序当前包含通过 Angular 显示的项目列表。还有一个显示当前选中项名称的标签,以及一个允许修改当前选中项名称的输入框。
我不知道如何同时:
- 允许选中一个item,触发更新label和输入框文字显示新选中item的名字
- 允许编辑输入框中的名称,触发更新显示当前显示的项目名称的标签
- 对名称的编辑应反映在原始模型项中
目前,我正在尝试通过针对该项目的标志来跟踪哪个项目是当前的,这不是我想要的。理想情况下,我将currentItem
在下面替换为直接引用 with 中的items
项目isCurrent=true
。
当前项目名称标签:
`<div id="CurrentItem" data-ng-model="currentItem">{{currentItem.name}}</div>`
当前项目名称输入框:
`<input id="ItemName" type="text" data-ng-model="currentItem" value="{{currentItem.name}}" />`
显示所有项目:
<div data-ng-repeat="item in items" data-ng-click="changeItem(item)">`
<img src="images/ItemIcon.png">
<div>{{item.name}}</div>
控制器:
var CoreAppController = function($scope, $location) {
$scope.changeItem = function(item) {
var length = $scope.items.length;
while(length-- ) {
$scope.items[length].isCurrent = false;
}
$scope.currentItem = item;
$scope.items.indexOf(item).isCurrent = false;
}
$scope.createItem = function(name, layout) {
$scope.items.push({ id: $scope.items.length + 1,
name: name,
isCurrent: false
});
}
// Initialisation
$scope.items = [];
$scope.createItem("Item 1");
$scope.createItem("Item 2");
$scope.items[0].isCurrent = true;
$scope.currentItem = $scope.items[0];
}
任何建议表示赞赏!