- 博客(37)
- 收藏
- 关注
博弈AngularJS讲义(17) - 启动
Bootstrap 本节我们将分析Angular应用初始化流程以及怎样手动启动Angular应用。 Angular<script> 标签 下面的例子说明了如何在页面中引入Angular. <!doctype html><html xmlns:ng="http://angularjs.org" ng-app> <bo...
2015-01-09 16:12:05
115
原创 博弈AngularJS讲义(16) - 提供者
Angular框架提供了强大的依赖注入机制,这一切都是有注入器(injector)完成. 注入器会自动实例化服务组件和符合Angular API规则的特殊对象,例如控制器,指令,过滤器动画等。 那注入器怎么知道如何去创建这些特殊的对象呢? Angular提供了5种方式让注入器创建对象,其中最基础的方式就是提供者(provider), 其余四种方式(Value, Factory, Se...
2015-01-08 14:20:10
140
原创 博弈AngularJS讲义(15) - HTML Compiler
Angular HTML编译器可以让开发者通过定制标签或者属性来拓展HTML语法。通过Angular HTML编译器,我们可以给任何HTML元素及其属性赋予额外的行为,丰富HTML的语义。Angular把这种行为扩展称作指令。 HTML使用了声明式的语法,例如我们只需在任何HTML元素上加上 align="center"属性即可让浏览器对元素进行居中对齐,而不用进行额外的编程来实现居...
2014-12-28 19:25:47
161
angular.isArray
angular.isArray描述:判断是不是数组 使用方法:angular.isArray(value) 参数详解:ParamTypeDetailsvalue*需要判断的值 返回值:true/false (很简单的一个方法就不写示例代码了。)...
2014-12-26 17:04:17
175
angular.injector
angular.injector 描述:创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法:angular.injector(modules, [strictDi]) 参数详解:ParamTypeDetailsmodulesArray.<s...
2014-12-24 13:29:32
103
angular.identity
angular.identiy描述:返回它第一参数的函数. 此函数多用于函数是编程.使用方法:angular.identity(value);参数详解:ParamTypeDetailsvalue*to be returned.返回值:传入的value实例代码:<!DOCTYPE HTML><...
2014-12-22 16:30:42
125
原创 博弈AngularJS讲义(14) - 模块
模块 我们可以把angular中的模块(module)想象成应用组件的容器,这些组件包括控制器,服务,过滤器,指令等. 为什么? 有过编程经验的都知道大部分应用都有一个main方法来初始化应用组件并把它们关联起来. Angular不提供这样的主函数,而是通过声明式的语法定义如何启动一个应用. 这种声明式的方法有如下几个优点: - 声明式的语言易于理解 - 可...
2014-12-19 10:59:26
101
angular.fromJson
angular.fromJson描述:把Json字符串转为对象使用方法:angular.fromJson(json);参数详解:ParamTypeDetailsjsonstringJSON 字符串返回值:对象, 数组, 字符串 或者是一个数字示例:<!DOCTYPE HTML><html ...
2014-12-18 16:02:50
277
博弈AngularJS讲义(13) - 动画
动画 AngularJS 1.3版本为常用的指令(ngRepeat,ngSwitch,ngView...)提供了动画支持,另外还可以通过$animate组件为自定义的指令提供动画支持。这些动画钩子(hook)将在指令的生命周期内触发基于CSS变换(Transition), CSS Keyframe,或者js回调的动画。添加动画支持需要引入ngAnimate模块(下载附件angular-a...
2014-12-18 11:13:57
103
原创 博弈AngularJS讲义(12) - 表单
本节我们将通过几个具体的例子来讲解Angular表单。简单的表单 ngModel指令实现了双向的数据绑定,即模型和视图双向同步,同时它也为其他指令提供了API来扩展ngModel的行为。让我们看如下示例: <div ng-controller="ExampleController"> <form novalidate class="simp...
2014-12-17 10:17:18
199
angular.forEach
angular.forEach描述:循环对obj对象的每个元素调用iterator, obj对象可以是一个Object或一个Array. Iterator函数调用方法: iterator(value, key, obj), 其中obj是被迭代对象,key是obj的property key或者是数组的index,value就是相应的值啦. (此函数不能够迭代继承的属性.)使用方法:...
2014-12-16 10:51:27
198
angular.extend
angular.extend复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制.使用方法:angular.extend(dst, src);参数:...
2014-12-15 10:29:53
93
原创 博弈AngularJS讲义(11) - 指令
自定义指令 本章我们将详细讲解如何用AngularJS实现自定义指令(directives)来扩充HTML. 指令的基本概念 简单来说,指令就是Angular编译器能够识别并处理的附加在DOM元素上的标记(例如属性、元素名字、注释、CSS类)。Angular HTML编译器会在应用初始化阶段给这些DOM元素及子元素赋予额外的行为动作或者转换。 Angular框架提供了...
2014-12-11 14:18:26
164
angular.equals
angular.equals 描述:比较两个值或者两个对象是不是相等。还支持值的类型,正则表达式和数组的比较。 两个值或对象被认为是相等的前提条件是以下的情况至少能满足一项:两个值或者对象能通过=== (恒等) 的比较两个值或者对象是同样类型,并且他们的属性都能通过angular.equals的比较两个值都是NaN两个值代表两个同样的正则...
2014-12-10 11:35:25
159
angular.element
angular.element描述: 包裹着一部分DOM element或者是HTML字符串,把它作为一个jQuery元素来处理。(类似于jQuery的选择器啦) 如果jQuery被引入了,则angular.element就可以看作是jQuery选择器,选择的对象可以使用jQuery的函数;如果jQuery不可用,angular.element只能接受HTML字符串或者...
2014-12-09 14:44:48
104
原创 博弈AngularJS讲义(10) - 过滤器
Angular过滤器主要用来格式化输出表达式的值。过滤器可以用于视图模板、控制器或者服务组件中。我们可以通过Angular的api轻松的实现过滤器。 如何在模板中使用过滤器 我们可以通过如下语法在表达式中使用过滤器,类似于Linux命令行中的管道:{{ expression | filter }} 例如: {{ 12 | currency }} 将会以货币...
2014-12-06 15:33:16
126
博弈AngularJS讲义(9) - 表达式
Angular表达式 Angular表达式类似于JS代码,有双大括号绑定,其格式为{{expression}}. 例如: 1+2 - 两个常量数字相加即 3 a+b - 作用域中的两个model相加 user.name - 获取作用域中属性user的name属性 items[index] - 获取作用域中items数组的元素...
2014-12-06 14:27:58
158
原创 博弈AngularJS讲义(8) - 模板
在Angular中,模板是包含通过Angular定义的元素和属性的HTML代码。Angular将控制器及模型中的信息与模板绑定起来动态的展现视图。 通常angular定制的元素及属性包括以下几种: 1. 指令(Directive) - 用Angular定制的属性或元素,作为对HTML的扩充,是可重用的DOM组件。 2. 标记(Markup) - 用双大括号{...
2014-12-05 09:51:12
92
博弈AngularJS讲义(7) - 依赖注入
依赖注入 依赖注入(DI)是一个经典的设计模式, 主要是用来处理组件如何获得依赖的问题。关于DI,推荐阅读Martin Flower的文章(http://martinfowler.com/articles/injection.html )。 Angular注入器会负责创建angular组件,解决组件之间的依赖以及依赖注入等职责。 使用依赖注入 依赖注入在angula...
2014-12-04 11:54:25
121
angular.copy
angular.copy描述: 复制一个对象或者一个数组(好吧,万物皆对象,数组也是一个对象)。 如果省略了destination,一个新的对象或数组将会被创建出来; 如果提供了destination,则source对象中的所有元素和属性都会被复制到destination中; 如果source不是对象或数组(例如是null或undefined)...
2014-12-03 18:57:12
102
原创 博弈AngularJS讲义(6) - 作用域
什么是作用域? Angular中作用域(scope)是模板以及工作的上下文环境,作用域中存放了应用模型和视图相关的回调行为。作用域是层次化结构的与相关联的DOM结构相对应。作用域可以观察表达式以及传播事件。 原文: scope is an object that refers to the application model. It is an execution context ...
2014-12-03 18:54:42
142
angular.bootstrap
angular.bootstrap描述: 手动初始化angular。 这个函数会自动检测创建的module有没有被加载多次,如果有则会在浏览器的控制台打出警告日志,并且不会再次加载。这样可以避免在程序运行过程中许多奇怪的问题发生。 使用方法: angular.bootstrap(element, [modules], [config]);...
2014-12-02 21:36:31
147
原创 设计模式杂谈 - 单例
单例模式是使用最为普遍的模式之一。它属于创建模式,确保系统中该类型的类只被实例化一次。 也许有误解,认为单例是在jvm进程中只有一个实例,其实是在同一个Classloader下面仅被实例化一次。Singleton通常用来表示本质上唯一的系统组件,比如文件系统,窗口管理器,系统全局的配置之类的。 在Java语言中,单例能带来一些好处: 1. 对于频繁使用的对象,可以省略创建对象所花费的时间,特别...
2014-12-02 20:39:29
83
原创 Structs 2 Action 与 JQuery Datatable 的整合
这篇文章主要讲述SSH框架下如何整合AngularJS, JQuery Datatable 以及Bootstrap。 废话少说,进入主题,本篇主要以代码粘贴为主。 第一步:新建Maven项目,pom文件如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org...
2014-12-02 14:49:37
144
原创 博弈AngularJS讲义(5) - 服务组件
在写Angular应用时,我们通常把与视图逻辑无关的公共代码片段写在service组件中,然后以依赖注入的方式进行使用. Angular service是惰性初始化的(Lazily instantiated),也就是说只有应用组件发现依赖某个service组件时才会实例化依赖的服务组件,angular服务是单例的, 我们可以联想到Spring MVC框架中的service组件。 An...
2014-12-02 11:35:23
105
原创 博弈AngularJS讲义(4) - 控制器
在Angular中,控制器(Controller)就是基于JavaScript的构造方法,主要用来构造模型并建立模型和视图之间的数据绑定。控制器里面定义了应用程序的逻辑和行为。 通过ng-controller指令可以将控制器和DOM绑定起来。Angular会用定义过的控制器构造函数实例化一个控制器对象,在Angular应用(module)启动的时候,会创建一个根作用域, Angul...
2014-12-01 19:07:05
105
angular.bind
angular.bind描述: 上下文,函数以及参数动态绑定,返回值为绑定之后的函数. 其中args是可选的动态参数,self在fn中使用this调用。使用方法: angular.bind(self, fn, args);参数详解:ParamTypeDetails selfObjectfn的上下文对象,使...
2014-12-01 19:05:00
122
原创 博弈Java讲义 - 关于equals & hash
覆盖equals方法和hashCode方法看似简单,但其实不然,如果没有按照jdk的通用规范去覆盖,那么基于这些约定的类将可能无法正常工作,例如基于散列的集合类HashMap和HashSet. 对于值类,我们通常需要覆盖Object.equals方法,因为我们希望通过equals方法知道它们在逻辑上是否相等.相应的这个类的实例可以被用作map的key,或者set的元素的时候才会表现出预期的行...
2014-11-30 19:52:28
83
原创 博弈Java讲义 - Java线程之uncontrolled exceptions
前两天翻阅《Effective Java》发现一条提示慎用线程组。ThreadGroup提供的很多功能的实现是有瑕疵的。例如,我们可以调用activeCount获得该组中活动线程的数量,一旦这个数组进行了分配,并用enumerate方法遍历,如果线程数增加了,就有可能忽略掉调用activeCount后新增的线程。关于处理线程组逻辑,可以用线程池的executor代替。 也许ThreadGro...
2014-11-27 20:05:19
73
原创 博弈Java讲义 - Java线程之ThreadGroup
Java并发包里面提供了ThreadGroup类可以帮助我们有效地管理线程组。让我们来看一个生动的例子. Java线程组可以有线程对象或者子线程组组成。也就是说ThreadGroup可以是产生线程树。 让我们看一个简单的例子,这个例子模仿一个搜索任务,将启动10个线程遍历获取指定目录下面的excel文件列表,一旦有一个线程完成遍历,将中断其余的9个任务。 Java代码 ...
2014-11-27 19:14:25
112
原创 博弈AngularJS讲义(3) - 数据绑定
在AngularJS中数据绑定(Data-binding)意指模型和视图组件之间的数据自动同步。AngularJS应用是基于模型驱动的(Developer Guide原文“The way that Angular implements data-binding lets you treat the model as the single-source-of-truth in your ap...
2014-11-27 15:40:34
123
原创 博弈AngularJS讲义(2) - 核心概念
基本概念 在使用AngularJS之前,我们有必要梳理一下AngularJS核心概念及实现原理,以便于写出结构良好的代码。本章我们将结合简单的实例简要介绍Angular的重点概念,我们将附上AngularJS官方文档上的原文,帮助大家更好的理解概念:Template官方解释 “HTML with additional markup” ,模板就是HTML和CSS编写的片段,用来展现应...
2014-11-27 14:11:22
127
原创 博弈Java讲义 - ThreadLocal
还记得Java并发最佳实践有一条提到尽量不要在线程间共享状态。但我们在实现一个thread或者runnable接口的时候很容易放这个错误,导致一些诡异的问题。 让我们看下面这个例子: public class UnsafeTask implements Runnable { private Date startDate; @Overr...
2014-11-25 20:27:41
77
原创 博弈AngularJS讲义(1) - 快速开始
什么是AngularJS ? AngularJS是一款非常优秀的前端MVVM(Model-View-ViewModel)框架,它强大的双向数据绑定(two-way data binding)和依赖注入(dependency injection), 使得前端代码结构更具层次化和模块化,极大减少了前端代码量。 通过AngularJS可以扩展HTML的语法,让页面显得更加简洁。 由于国...
2014-11-24 11:55:39
114
原创 博弈Java讲义 - Java线程同步 (1)
在并发编程中经常会碰到多个执行线程共享资源的问题。例如多个线程同时读写文件,共用数据库连接,全局的计数器等。如果不处理好多线程之间的同步问题很容易引起状态不一致或者其他的错误。 同步不仅可以阻止一个线程看到对象处于不一致的状态,它还可以保证进入同步方法或者块的每个线程,都看到由同一锁保护的之前所有的修改结果。处理同步的关键就是要正确的识别临界条件(critical section...
2014-11-23 21:08:59
68
原创 【跟着博弈走,微信轻松有】企业号第三方Java环境搭建之二: 回调模式
前节【项目搭建】 讲述了如何搭建一个SpringMVC的Maven项目,这节我们将关注回调模式的相关事宜。 开启应用的回调模式当你开启应用的回调模式时,企业号会要求你填写应用的URL、Token、EncodingAESKey三个参数。URL是企业应用接收企业号推送请求的访问协议和地址,支持http或https协议。Token可由企业任意填写,用于生成签名。Encodin...
2014-11-23 20:40:37
203
原创 【跟着博弈走,微信轻松有】企业号第三方Java环境搭建之一: 项目搭建
微信对企业号的定义:企业号是微信为企业客户提供的移动应用入口。它帮助企业建立员工、上下游供应链与企业IT系统间的连接。利用企业号,企业或第三方合作伙伴可以帮助企业快速、低成本的实现高质量的移动轻应用,实现生产、管理、协作、运营的移动化。 本系列博客将全方位的讲解第三方应用介入微信平台的相关细节,有兴趣的朋友可以一起探讨。 首先来讲讲微信平台的工作模式或者实现原理: ...
2014-11-23 19:45:07
122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人