angular js 17年1月小结 (包括简单的指令和模块 服务等)
来源:互联网 发布:webpackconfig.js 编辑:程序博客网 时间:2024/06/08 02:09
在工作中,也是初次使用angular js,学到的只是冰山一角,我是前端开发的小白,从事前端工作时间不长,快满3个月,是在工作之余想要记录一下自己新学到的知识。
1. angular js 最重要的思想,我想就是双向数据绑定了,摒除过去jquery 操作DOM节点的想法,牢记 后台传递的数据是直接通过 $scope 和{{ }}双向绑定显示在页面上的。
2. 思想具备了,我想实现起来也就简单多了。当然首先还是去官网将angular js 下载并引入,之后需要用到angular js 的js 文件都要 放到 这个文件之后。
3.之后学习我学习到的主要是三块了。angular js 现有的插件,服务 $内容,指令。
下面详细来说一下我学到的指令。
指令
1.ng-app=" app名称" 控制整个html 页面,将整个angular js 应用到html 中。
var app = angular.module("app名称",[''pascalprecht.translate']);后边为注入的模块(需要用到的)
2.ng-controller=“controller名称” 每一模块的控制指令。
app.controller("controller 名称",function($scope,$compile){
后边为用到的服务
)
3.控制样式指令
ng-class css样式选择性显示。值为false 或true.
<div ng-class="{true: 'active'}[判断条件 比如 $index==index]"> angular js 中$scope.active ='active' css中设置相应样式.active{}
ng-style ="样式名称" ,后边只要 $scope.样式名称 = {
“key”:"value";
}格式就可以.
4. ng-repeat 这个指令大大减轻了代码量, $index 是每次循环的次数,从0开始。
这里需要注意有时候 从后台传来的若为数组格式 [{"key":"value"},{"key":"value"}] 直接用就好 ng-repeat ="item in items" angular js $scope.items = [ ] 页面 {{item.key}}
键值对格式 ["key1":{“key”:'value",“key”:'value" },"key2":{“key”:'value",“key”:'value" }]
遍历循环时格式不能随意更换 (key,val) in items
{{key}} {value.key}
5.ng-show ng-hide 显示隐藏 值同样为true false 同ng-class 一样,也可以加条件[ ]
6 .ng-bind 同{{ }}实现效果相同,都用来实现数据绑定,但是可以避免 页面闪烁出现 {{ } }问题
7.一些操作指令 同js 相同
ng-click = "函数名(“参数”)" angular js $scope.函数名 = function(参数){
}
ng-mouseover ng-mouseout ng-change ng-blur 等等
8. ng-inclue 引入html 片段 新建一个 名为 new.html
<div ng-include=" ' 路径 ' "><div/> 相对于引入 html 的html 路径,注意这里 单纯 html 字符串 需要加单引号,变量什么都不加
注 angular js 传参或其他是变量 的话,单引号和 {{ }}都不加。
9.ng-view 配合路由使用。主要是用来切换不同页面使用。
10.ng-model 这次用的少。。。。。
11.ng-bind-template 绑定两个元素 不用另外用标签。
指令我目前用到的就这些了。
下边再说一下用到的服务。。。
1.不同控制器之间 互相传值
方法一:广播
父向子元素 传值 $broardcast 子向父元素 传值 $emit 接收 $on
方法:
传递方:$rootScope.$broadcast(“函数名”,传递的变量)
接收方:
$rootScope.$on("函数名",function(event, data) {
})
data 为传递过来的变量
方法二:service 服务 无关系控制器
app.factory(中间值,function(){
return {};
})
后面 哪用到 注入这个中间值,然后将变量赋给这个中间值就可以啦
形如
app.factory(param,function(){
return {};
})
一个控制器
app.controller(“a”,function(param){
var a=0;
param = a;
)
app.controller(“B”,function(param){
var b=0;
b = param
)
2.$compile $digest 解决将html 片段 含有双向绑定的数据显示在html中,而不是 {{ }} 具体并没深入研究。以后回来补充。
3.$rootScope 全局的scope $scope重要性就不说了
4.$http.post $http.get
$http.post('地址',参数 {key:value}).success(function(data) {
}
5 路由 注入ngRoute 它本身不在angular js中,需要再引入 angular-route.js 与ng-view 搭配用
app.config(function($routeProvider) {
$routeProvider
.when('路径(在主页面后拼)/:参数', {
templateUrl: 'a.html',
controller: 'Model'
})
.when('/b/:参数', {
templateUrl: 'b.html',
controller: 'Model'
})
})
这里写了控制器,html 中就不用再写了.地址后传递参数
点击切换路由 <a href="#/b/参数" >
angular js 中可以通过 $routeParams 来获取到这个参数
5 其他服务大都为使用插件时注入
最后来说一下这次用到的几个angular 的插件 和其中遇到的一些问题。
1 angular-translate 中英翻译 写一个 js 或json 文件用来存放所有的 中英编码,用键值对形式保存
同一个键值对应 不同的中英文
app.config(function($translateProvider){
$translateProvider.translations('cn', language_cn)
.translations('en',language_en);
$translateProvider.preferredLanguage('cn');
});
app.controller('translateCtrl', function($translate){
$scope.changeLanguage = function(langKey) {
$translate.use(langkey);
}
})
html {{“键值码”|translate}}
js 引入$translate $translate.instant("键值码")
点击切换语言
2 angular-tree 树 详见API文档 包括展开树及默认选择。
3. uib-alert 提示框
4.ui-bootstrap 弹出框
5.image-crop 头像上传
原来写点东西好累,尽管写的模糊不清,,,以后慢慢进步啦。
- angular js 17年1月小结 (包括简单的指令和模块 服务等)
- angular.js学习(2)--服务和指令
- angular.js 国际化模块 angular-translate 简单方便快捷翻译中英文等多语言环境
- angular.js 国际化模块 angular-translate 简单方便快捷翻译中英文等多语言环境
- angular.js 国际化模块 angular-translate 简单方便快捷翻译中英文等多语言环境
- angular.js学习(1)--指令和控制器间的交互
- angular.js基础(1)--指令directive
- angular控制器、服务和指令三者之间的关系
- angular指令的简单案例和解释directive
- Angular常用指令小结
- angular 简单的服务应用
- angular.js学习(1)--指令之间的交互--动感超人
- angular指令和指令之间的交互
- ngx_lua 模块提供的指令和API等
- angular.js学习(1)--指令执行机制
- angular.js学习(1)--directive指令独立scope
- angular.js(3)--指令的执行过程
- 基于angular.js的回到顶部指令
- win tree命令
- 2017-1-13 贝叶斯分类器,决策树 总结
- java就业实战全套视频教程
- 【关于选择】—-(1)放下努力和坚持吧
- 168. Excel Sheet Column Title
- angular js 17年1月小结 (包括简单的指令和模块 服务等)
- 从web.xml入手分析jeecms配置文件
- 小数点位数的处理
- Linux Shell脚本去掉几类常见文件中的注释
- Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined) C. Felicity is Coming! 哈希
- A Knight's Journey
- ios image not found
- Php基础语法
- Linu学习笔记之——ubuntu安装、卸载JDK1.7