1.常用指令

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="css/foundation.min.css">
<style>
.tx{
width: 50px;
height: 50px;
margin-bottom: 10px;
margin-left: 80px;
}
</style>
</head>
<!--ng-bind,{{}},ng-model,ng-show/hide,ng-if,ng-checked,ng-src-->
<!--ng-href,ng-class,ng-selected,ng-submit,ng-disable,ng-change-->
<body style="padding:10px" ng-app="app">
<div ng-controller="UserCtrl">
<form name="f" ng-submit="register(user)">
<fieldset>
<legend>基本信息</legend>
<img ng-src="{{user.icon}}"
ng-class="{'tx':user.showicon}"/>
<!--ng-hide="user.isShowImg"-->
<!--ng-show="user.isShowImg"-->
<!--ng-if="user.isShowImg"-->
<div>
<input type="text" ng-model="user.uname" placeholder="用户名" required />
<input type="password" placeholder="密码"/>
职位:<select>
<option value="">--请选择--</option>
<option value="1" ng-selected="user.zw=='1'">Java工程师</option>
<option value="2" ng-selected="user.zw=='2'">web工程师</option>
</select>
性别:<input type="radio"
ng-checked="user.sex=='1'"
name="sex">&nbsp;男&nbsp;
<input type="radio"
ng-checked="user.sex=='0'"
name="sex">&nbsp;女&nbsp;
</div>
</fieldset>
<fieldset>
<legend>爱好</legend>
<div>
<input type="checkbox" ng-checked="isChecked(1)" name="爱好">&nbsp;篮球&nbsp;
<input type="checkbox" ng-checked="isChecked(2)" name="爱好">&nbsp;足球&nbsp;
<input type="checkbox" ng-checked="isChecked(3)" name="爱好">&nbsp;排球&nbsp;
</div>
</fieldset>
<button type="submit"
ng-disabled="f.$invalid"
class="button expand">提交</button>
</form>
</div>
</body>
<script src="js/angular.min.js"></script>
<script>
angular.module('app',[])
.controller('UserCtrl',function($scope){
$scope.user={
isShowImg:true,
showicon:true,
icon:"images/demo.jpg",
uname:"",
pwd:"",
zw:"2",
sex:"1",
aihao:[1,3]
};
$scope.isChecked=function(n){
var isok=false;
for(var i=0;i<$scope.user.aihao.length;i++){
if(n==$scope.user.aihao[i]){
isok=true;
break;
}
}
return isok;
};
$scope.register=function(u){
console.log(u);
}
}); </script>
</html>

2.angular与element(1)

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="http://cdn.static.runoob.com/libs/foundation/5.5.3/css/foundation.min.css">
</head>
<body>
<div ng-app="app">
<div enter leave>我在这</div>
</div>
</body>
<script src="js/angular.min.js"></script>
<script>
var app=angular.module('app',[]);
app.directive('enter',function(){
return function(scope,element,attrs){
element.bind('mouseenter',function(){
element.addClass('alert-box');
})
}
});
app.directive('leave',function(){
return function(scope,element,attrs){
element.bind('mouseleave',function(){
element.removeClass('alert-box');
})
}
});
</script>
</html>

angular与element(2)

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="css/foundation.min.css">
</head>
<body>
<div ng-app="app">
<hello></hello>
</div>
</body>
<script src="js/angular.min.js"></script>
<script>
var app=angular.module('app',[]);
app.directive('hello',function(){
return {
restrict:"E",
template:'<div><input ng-model="txt"></div><div>{{txt}}</div>',
link:function(scope,element){
scope.$watch('txt',function(newVal){//监听
if(newVal==='error'){
element.addClass('alert-box alert')
}
})
}
}
});
</script>
</html>

3.自定义HTML组件

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="css/bootstrap.min.css"/>
</head>
<body>
<p>p:restrict含义(A属性,E标签元素(结合template插入),C类名)与应用,replace使用,template使用</p>
<div ng-app="app">
<div hello class="leiming"></div>
</div>
</body>
<script src="js/angular.min.js"></script>
<script>
var app=angular.module('app',[]);
app.directive('hello',function(){
// return {
// restrict:'E',//自定义HTML标签,在dom中显示标签名为hello
// replace:true,//默认false,替换掉自定义的directive名称,即把hello替换为div
// template:'<div>hello Angularjs</div>'
// };
return {
restrict:'A',
link:function(){
alert("我是属性")
}
};
});
app.directive('leiming',function(){
return {
restrict:'C',
link:function(){
alert("我是类名")
}
};
});
</script>
</html>

4.directive与controller

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--<p>controller属性使用,link使用,directive中调用controller的方法</p>-->
<div ng-app="app">
<!--<div ng-controller="AppCtrl">-->
<!--<div enter="loadMoreData()">加载数据</div>-->
<!--</div>-->
<food apple orange banana>所有食物</food>
<food apple banana>所有食物</food>
</div>
</body>
<script src="js/angular.min.js"></script>
<script>
var app=angular.module('app',[]);
//app.controller('AppCtrl',function($scope){
// $scope.loadMoreData=function(){
// alert("正在加载数据...")
// };
// $scope.delData=function(){
// alert("正在删除数据...")
// }
//});
//app.directive('enter',function(){
// return function(scope,element,attrs){
// element.bind('mouseenter',function(){
// //scope.loadMoreData();
// //scope.$apply('loadMoreData()');
// scope.$apply(attrs.enter);
// })
// }
//});
app.directive('food',function(){
return {
restrict:'E',
scope:{},
controller:function($scope){
$scope.foods=[];
this.addApple=function(){
$scope.foods.push('Apple');
};
this.addOrange=function(){
$scope.foods.push('Orange');
};
this.addBanana=function(){
$scope.foods.push('Banana');
}
},
link:function(scope,element,attrs){
element.bind('mouseenter',function(){
console.log(scope.foods);
});
}
}
});
app.directive('apple',function(){
return {
require:'food',
link:function(scope,element,attrs,foodCtrl){
foodCtrl.addApple();
}
}
});
app.directive('orange',function(){
return {
require:'food',
link:function(scope,element,attrs,foodCtrl){
foodCtrl.addOrange();
}
}
});
app.directive('banana',function(){
return {
require:'food',
link:function(scope,element,attrs,foodCtrl){
foodCtrl.addBanana();
}
}
});
</script>
</html>

Angular.js进阶的更多相关文章

  1. AngularJS进阶(四)ANGULAR.JS实现下拉菜单单选

    ANGULAR.JS: NG-SELECT AND NG-OPTIONS PS:其实看英文文档比看中文文档更容易理解,前提是你的英语基础还可以.英文文档对于知识点讲述简明扼要,通俗易懂,而有些中文文档 ...

  2. Atitit.angular.js 使用最佳实践 原理与常见问题解决与列表显示案例 attilax总结

    Atitit.angular.js 使用最佳实践 原理与常见问题解决与列表显示案例 attilax总结 1. 本文范围 1 2. Angular的优点 1 2.1. 双向数据绑定 1 2.2. dsl ...

  3. MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录

    注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...

  4. 2. web前端开发分享-css,js进阶篇

    一,css进阶篇: 等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践经验, 简单的想法:把qq首页全屏另存为jpg然后通过ps工具切图结合css转换成html,有无从下手 ...

  5. angular.js:13920 Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- testServe

    angular.js:13920 Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- testSer ...

  6. (翻译)Angular.js为什么如此火呢?

    在本文中让我们来逐步发掘angular为什么如此火: Angular.js 是一个MV*(Model-View-Whatever,不管是MVC或者MVVM,统归MDV(model Drive View ...

  7. angular.js写法不规范导致错误

    以下写法:没有明确指定module和controller,写法不规范. 更改angular.js版本会出bug. <html ng-app> <head> <title& ...

  8. Angular.js实现折叠按钮的经典指令.

    var expanderModule=angular.module('expanderModule',[]) expanderModule.directive('expander',function( ...

  9. Angular.js通过bootstrap实现经典的表单提交

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel= ...

随机推荐

  1. 安装busybox玩玩

    到http://www.busybox.net/downloads/binaries/下载放到sdcard然后adb shellsumount -o remount,rw -t yaffs2 /dev ...

  2. WPF控件相对位置解析

    WPF控件相对位置的获取方法是比较简单的.对于初学者来说,掌握这一技巧的应用,可以帮助以后对WPF的深入学习,而且在实际使用中,这是一个非常常用的方法. 我们知道WPF有着比较灵活的布局方式,关于某个 ...

  3. svn up (svn update) 状态缩写含义

    A:add,新增  C:conflict,冲突  D:delete,删除  M:modify,本地已经修改  G:modify and merGed,本地文件修改并且和服务器的进行合并  U:upda ...

  4. Java—IO流 对象的序列化和反序列化

    序列化的基本操作 1.对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化. 2.序列化流(ObjectOutputStream),writeObject 方法用于将对象写入输出流中 ...

  5. char和varchar的区别

    在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下两者的 ...

  6. Ssh 证书验证登录

    一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器.但是,一般的密码方式登录,容易有密码被暴力破解的问题.所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 ...

  7. git rebase vs git merge详解

    https://medium.com/@porteneuve/getting-solid-at-git-rebase-vs-merge-4fa1a48c53aa#.std3ddz0g 请参考另外一篇文 ...

  8. 使用 Load Balancer,Corosync,Pacemaker 搭建 Linux 高可用集群

    由于网络架构的原因,在一般虚拟机或物理环境中常见的用 VIP 来实现双机高可用方案,无法照搬到 Azure 平台.但利用 Azure 平台提供的负载均衡或者内部负载均衡功能,可以达到类似的效果. 本文 ...

  9. json转换为tree对象(递归)

    const newTeam = function (data, parentId) { 2 let itemArr = []; 3 for (let i = 0; i < data.length ...

  10. 使用with子句优化代码中重复查询

    /*好处: 1. 性能更好,一份复制(类似SYS_TMP...),多份使用.       2. 结构清晰,预先定义.       3. 代码修改不必修改多处.       请注意观察语句1和语句2执行 ...