angular综合题 添加 删除 排序 隔行变色 等

<!DOCTYPE html>
<html>



2.用户信息添加页




3.删除询问框


实现用户数据列表展示5分,实现列表选中行变色5分,实现表格内行与行之间颜色区分5分,实现鼠标移动到删除上时变为小手样式5分。

2.实现姓名查询条件框5分,实现查询条件框内的内容为空点击查询按钮时alert提示”请输入姓名”5分,实现按姓名搜索表格内容功能5分,当搜索内容未找到匹配项时提示”未找到内容”5分,当搜索内容有敏感词时,alert提示5分。

3.实现排序下拉列表展示5分,实现按照年龄倒序排序5分,实现按照年龄正序排序5分

4.实现用户添加页5分,按要求实现内容添加5分,实现添加内容时的校验,当年龄不为数字时alert提示用户”年龄格式错误”功能5分,实现添加用户信息到列表中5分。

5.实现列表页面布局整洁5分,实现添加页面布局整洁5分

6. 实现点击删除时弹出二次确认询问框5分,实现删除功能,删除后从列表中消失5分。注:询问框可使用js的confirm实现

实现用户数据列表展示5分,实现列表选中行变色5分,实现表格内行与行之间颜色区分5分,实现鼠标移动到删除上时变为小手样式5分。

2.实现姓名查询条件框5分,实现查询条件框内的内容为空点击查询按钮时alert提示”请输入姓名”5分,实现按姓名搜索表格内容功能5分,当搜索内容未找到匹配项时提示”未找到内容”5分,当搜索内容有敏感词时,alert提示5分。

3.实现排序下拉列表展示5分,实现按照年龄倒序排序5分,实现按照年龄正序排序5分

4.实现用户添加页5分,按要求实现内容添加5分,实现添加内容时的校验,当年龄不为数字时alert提示用户”年龄格式错误”功能5分,实现添加用户信息到列表中5分。

5.实现列表页面布局整洁5分,实现添加页面布局整洁5分

6. 实现点击删除时弹出二次确认询问框5分,实现删除功能,删除后从列表中消失5分。注:询问框可使用js的confirm实现


<!DOCTYPE html>
<html>


<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript" src="js/angular.min.js"></script>
</head>


<style type="text/css">
#div1 {
width: 500px;
height: 30px;
text-align: center;
}

#tab1 {
width: 500px;
height: 30px;
}
//*隔行变色*/
tr:nth-of-type(odd) {
background: yellow;
}
/*鼠标移入变色*/
tr:nth-of-type(odd):hover {
background: #41C7DB;
}
/*隔行变色*/
tr:nth-of-type(even) {
background: red;
}
/*鼠标移入变色*/
tr:nth-of-type(even):hover {
background: #41C7DB;
}

#div2 {
width: 300px;
height: 150px;
border: 1px solid black;
margin-top: 20px;
}
</style>


<body ng-app="myapp" ng-controller="mycontroller">


<div id="div1">
姓名查询条件 <input type="text" ng-model="name" />


<select ng-change="xl()" ng-model="age" ng-init="age=aes[1]">
<option ng-repeat="ae in aes">{{ae}}</option>
</select>
</div>
<table border="1px" cellspacing="0" cellpadding="0" id="tab1">
<tr>
<td colspan="5" style="background: white;">用户列表</td>
</tr>
<tr style="background: #999999;">
<td>姓名</td>
<td>年龄</td>
<td>拼音</td>
<td>职位</td>
<td>操作</td>
</tr>


<tr ng-repeat="emp in emps">
                 //赋值
<td>{{emp.name1}}</td>
<td>{{emp.age1}}</td>
<td>{{emp.pingying1}}</td>
<td>{{emp.zw1}}</td>
<td>
<a href="#" ng-click="dele($index)">删除</a>
</td>


</tr>


<tr>
<td colspan="5" align="center">
<input type="button" value="查询" ng-click="cx()" />
<input type="button" value="添加" ng-click="tj()" />


</td>
</tr>


</table>


<fieldset id=div2 ng-show="fs">
<legend>添加用户信息</legend>
<center>
<form>
姓名<input type="text" ng-model="name2" /><br/> 年龄
<input type="text" ng-model="age2" /><br/> 拼音
<input type="text" ng-model="pinying2" /><br/> 职位
<input type="text" ng-model="zw2" /><br/>
<input type="button" value="保存 " ng-click="bz()" />
</form>
</center>


</fieldset>


<script type="text/javascript">
var mo = angular.module("myapp", []);
mo.controller("mycontroller", function($scope) {
//给table赋值
$scope.emps = [{
"name1": "张三",
"age1": "45",
"pingying1": "zhangsan",
"zw1": "总经理",
"flas": false
}, {
"name1": "李四",
"age1": "44",
"pingying1": "lisi",
"zw1": "总经理",
"flas": false
}, {
"name1": "王五",
"age1": "43",
"pingying1": "wangwu",
"zw1": "总经理",
"flas": false
}];
                    //给下拉框的赋值
$scope.aes = ["按年龄正序", "按年龄倒序"];

//获取下拉拉事件
$scope.xl = function() {
//取出属性
var aa = $scope.age;
                     //取出的属性等不等于赋值的属性
if(aa == "按年龄正序") {
//排序   死格式
$scope.emps.sort(function(a, b) {
return a.age1 - b.age1;
})
} else {
$scope.emps.sort(function(a, b) {
return b.age1 - a.age1;
})
}


}
                //调用删除的方法 $index传过来的鼠标
$scope.dele = function($index) {
//confirm 警示框
var sf = confirm("是否删除");
if(sf) {
//删除
$scope.emps.splice($index, 1)
}


}
               
               //调用查询的方法
$scope.cx = function() {
在点击查询的时候调用
$scope.emps = [{
"name1": "张三",
"age1": "45",
"pingying1": "zhangsan",
"zw1": "总经理",
"flas": false
}, {
"name1": "李四",
"age1": "44",
"pingying1": "lisi",
"zw1": "总经理",
"flas": false
}, {
"name1": "王五",
"age1": "43",
"pingying1": "wangwu",
"zw1": "总经理",
"flas": false
}];
                         //查询条件框内的内容为空点击
if($scope.name == null || $scope.name == "") {
alert("请输入姓名!!!");
return;


}
                       // 输入用有敏感词“傻逼” 
if($scope.name.indexOf("傻逼") > -1) {
alert("非法字符!!!");
return;


}
                   //设置一个空数组
var mz = [];
                     //遍历emps数组
for(var i = 0; i < $scope.emps.length; i++) {


if($scope.name == $scope.emps[i].name1) { //用name值是一样的


mz.push($scope.emps[i]);//放数组
}
 

 
}


if(mz.length == 0) {//如果数组历没有就是0
alert("没有此人!!!");
return;
}
$scope.emps = mz;//把数组赋给emps这个数组
}
                 //点击添加的时候显示隐藏的表单
$scope.tj = function() {


$scope.fs = true//true是隐藏


}
 
$scope.bz = function() {


var aa = /^[0-9]+$/;//判断是否是纯数字
                     //不是数字就弹出格式错误
if(!aa.test($scope.age2)) {


alert("格式不对");


return;
}
                         //添加的数据
var aa = {
"name1": $scope.name2,
"age1": $scope.age2,
"pingying1": $scope.pinying2,
"zw1": $scope.zw2,
"flas": false
}


$scope.emps.push(aa); //放进数组
//添加完毕,将输入框清空
$scope.name2 = ""
$scope.age2 = ""
$scope.pinying2 = ""
$scope.zw2 = ""
                       //在隐藏
$scope.fs = false;


}


})
</script>
</body>


</html>



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Angular面试题可以涉及很多方面,包括Angular的版本更新速度、双向绑定的实现原理以及在Angular中应该避免在哪些地方进行DOM操作等等。根据引用\[1\],目前Angular的版本更新速度是每年2个主版本。而双向绑定是通过脏数据检查(Dirty checking)来实现的,即将当前时刻的新值和旧值进行比对,如果不相等则需要更新视图。这个过程是在Angular的ngZone中进行的,ngZone会封装和重写一些异步操作,然后通知Angular进行脏检查处理并更新DOM,这样就实现了双向绑定。根据引用\[2\],在Angular中,DOM操作应该尽量避免出现在服务(service)中,而应该出现在指令(directive)中。这是因为Angular倡导测试驱动开发,如果在服务或控制器中出现DOM操作,那么测试将无法通过。另外,Angular的一个优势就是双向数据绑定,这样可以专注于处理业务逻辑,而无需关心大量的DOM操作。如果在Angular代码中到处都是DOM操作,那为什么不直接使用jQuery进行开发呢?所以在面试中,可能会涉及到这些方面的问题。 #### 引用[.reference_title] - *1* *2* [Angular 面试题汇总1-基本知识 (Angular v8+)](https://blog.csdn.net/weixin_43288714/article/details/109717588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [angular常见面试题及答案](https://blog.csdn.net/weixin_45102270/article/details/113064397)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值