javascript-问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1960字,纯文字阅读大概需要3分钟。
内容图文
![javascript-问题](/upload/InfoBanner/zyjiaocheng/681/0a91bf250f354696bc407338873bb3eb.jpg)
我试图通过AngularJS实现一个简单的功能,如下所示.在项目列表中,当用户单击一个项目并单击“删除”按钮时,该项目将被删除.
的HTML:
<div ng-app="app" ng-controller="MainController">
<div>
<select ng-options="item.name for item in items" ng-model="currentItem" size="5" style="width: 200px"></select>
</div>
<button ng-click="removeItem()">Remove</button>
</div>
脚本如下:
angular.module('app', [])
.controller('MainController', function($scope) {
$scope.items = [{
name: 'item1'
}, {
name: 'item2'
}, {
name: 'item3'
}];
$scope.currentItem = $scope.items[0];
$scope.removeItem = function() {
var index = $scope.items.indexOf($scope.currentItem);
$scope.items.splice(index, 1);
};
});
问题是当我尝试删除一个项目(即item2)时,列表始终在第一个位置显示一个空项目.当我单击“ item1”或“ item3”时,空白项消失.
我知道这是由html中的ng-model =“ currentItem”引起的. currentItem指向要删除的项目,currentItem指向null.因此,如下更改功能removeItem以解决此问题.
$scope.removeItem = function() {
var index = $scope.items.indexOf($scope.currentItem);
$scope.items.splice(index, 1);
/* PART 1 begin */
if ($scope.items.length === 0) {
$scope.currentItem = null;
} else {
if (index >= 0 && index <= $scope.items.length - 1) {
$scope.currentItem = $scope.items[index];
} else {
$scope.currentItem = $scope.items[$scope.items.length - 1];
}
}
/* PART 1 end */
};
我想知道AngularJS中是否有任何简单的方法(如指令)自动执行第1部分中的操作.
解决方法:
有一种简单的方法可以防止这种情况的发生,包括
<option value="" ng-show="false"></option>
选择如下所示
<select ng-options="item as item.name for item in items" ng-model="currentItem" size="5" style="width: 200px">
<option value="" ng-show="false"></option>
</select>
更新1
我已经解决了不突出显示最后一个项目的问题,请看一下工作演示
$scope.removeItem = function () {
var index = $scope.items.indexOf($scope.currentItem);
$scope.items.splice(index, 1);
index === $scope.items.length ? $scope.currentItem = $scope.items[index - 1] : $scope.currentItem = $scope.items[index];
};
内容总结
以上是互联网集市为您收集整理的javascript-问题全部内容,希望文章能够帮你解决javascript-问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。