
1.什么是Sencha Touch?
Sencha Touch让您能够快速、轻松地创建基于HTML5的移动应用程序,在Android、iOS和黑莓设备中工作,并运行在浏览器中与本地应用程序一致的体验。
app.controller('editCtrl', ['$http', '$location', '$rootScope', '$scope', '$state', '$stateParams', function($http, $location, $rootScope, $scope, $state, $stateParams){
// 上边声明添加显示的依赖注入,是为了防止,压缩(如UglifyJS)时改变function里的参数名,造成功能引用失败。推荐r.js压缩
// do something...
}$stateParams.id // #/camnpr/editCtrl?id=1
Android平台提供了广泛的UI可视组件---widget,把这些小的可视的构件组合到一起,就可以给用户提供复杂而有用的界面。但是,应用程序经常需要一些高级可视组件,要满足这样的需求,并要达到高效的目的,可以把一些标准的widget组合成一个新的可复用的组件。
例如,包含一个进度条和一个取消按钮的操作进度表示组件;包含两个按钮的面板(取消和确认操作);带有一个图标、标题和说明的面板等等。通过编写定制的View类能够很容易的创建UI组件,但是使用XML会更加容易。
我是工作在一个用AngularJS应用,我提出一个列表,用户可以选择的项目。我不想人群中动作按钮,所以我决定用一个上下文菜单。有一个伟大的jQuery插件提供了一个自举的下拉菜单,当你单击右键,称为引导的上下文菜单。不幸的是,jQuery插件,修改DOM不功能非常有效地与角由于积极重新编译并插入DOM。所以我创建了一个角指令完成同样的功能。检查演示:AngularJS右键菜单插件-ng-context-menu
如果我想实现这样一个功能,当一个input失去光标焦点时(blur),执行一些语句,比如当输入用户名后,向后台发ajax请求查询用户名是否已经存在,好有及时的页面相应。
输入 camnpr![]()
失去焦点后提示 camnpr这个用户名已经存在
用户名已经存在
继上一篇的angular性能优化一文中说道:有些项目场景是只需要单次绑定,减少性能开销的。不久之前,AngularJS 1.3版本正式发布,其中添加了很多的性特性,同时也对之前的一些bug做了修复,最重要的是其中包含一些突破性的变化。其中最重要的一项就是添加了一次性数据绑定。
1. 脏数据检查 != 轮询检查更新 2. $digest后批量更新UI 3. 提速 $digest cycle
3.1. 关键点 3.2. 优化$watch 3.3. $apply vs $digest 3.4. 延迟执行
4. 优化ng-repeat 4.1. 限制列表个数 4.2. 使用 track by
5. 使用单次绑定
6. 慎用filter
7. 慎用事件
8. directive
9. 使用Batarang来分析性能
首先,provider, value, constant, service, factory他们都是provider!(decorator小朋友先搬个小板凳坐在边上等会儿,现在还没轮到你出场哈~)
provider是干啥的?
provider可以为应用提供通用的服务,形式可以是常量,也可以是对象。
比如我们在controller里常用的$http就是AngularJS框架提供的provider~
AngularJS是通过该什么来触发绑定的,怎么触发?下边的三个概念需要知道:
Dirty Checking的机制,由$digest()触发。Digest。由$apply()触发。Scope是AngularJS里的一个很重要的概念,简单的说它就是用来保存AngularJS Model们的对象,是Model们温暖的小家~
那这个小家是什么时候造的呢?
<html ng-app="mainApp">
</html>