Ionic/Angularjs 知识点解析

angular-ui-router(状态跳转)

state的定义:(在app.js的config下配置)

	$stateProvider
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'app/menu.html',
controller: 'AppCtrl'
})
//state 跳转使用该参数名
.state('app.myapp-home', {
//使用href跳转使用该参数 格式为: ( #该参数 )
url: "/myapp/home",
views: {
'menuContent': {
templateUrl: "app/myapp/myapp-home.html",
controller: 'myappHomeCtrl'
}
}

跳转

  1. 使用js跳转 $state.go('app.myapp-home')
  2. 在UI里使用href属性:href="#/myapp/home"
  3. state 跟url使用同一个标识,可以减少使用时的混乱

事件阻断

	ng-click="questionValueClick(item,$event)"

	$scope.questionValueClick = function(item,$event){
$event.stopPropagation();
//do something
}

$rootScope (全局变量缓存)

	$rootScope.currentDate = new Date();
{{$root.currentDate}}

ng-repeat (重复绘制内容)

controller的配置

	angular.module('app.controllers')

	.controller('ExpectCtrl', ['$scope','ExpectService',function($scope,ExpectService) {
//定义好需要用的数据
$scope.data = {};
$scope.data.repectData = ExpectService.getExpectData();
}]);

UI的使用

	<div class="list">
<!--使用ng-repeat,定义一个变量 使用in 语句 遍历目标数据列,改标签为循环体,里面的视图将会循环显示-->
<div ng-repeat="expectItem in data.repectData">
<!--使用{{ }}引用循环中的数据-->
<div class="item item-divider">
<span class="expect-label">目标:</span> <span>{{expectItem.title}}</span>
</div>
<a class="item" href="#">
<span class="expect-label">描述:</span> <span>{{expectItem.desc}}</span>
</a>
</div>
</div>

$q (用于返回promise格式的数据)

	//定义
function makePromise (){
获取一个deferred
var deferred = $q.defer();
var result = {name:'test'};
//返回一个成功结果
deferred.resolve(result);
//返回一个失败结果
//deferred.reject(result);
return deferred.promise;
} //调用
makePromise()
//resolve会跳到这里
.then(function(result){
//result 为 {name:'test'}
//do something
})
//reject会跳到这里
.catch(function(result){
//do something
})

localStorage 的使用(本地缓存)

不能保存复杂的对象,所以保存对象要转为json格式

	//插入数据
var userMap ={name:'Saber'};
localStorage.setItem('userMap', JSON.stringify(userMap)); //获取数据
var result = JSON.parse(localStorage.getItem('userMap'))

ng-if,ng-show,ng-hide

区别

  • ng-if 会直接把元素从dom里面移除
  • ng-show,ng-hide 则只是隐藏
  • ng-if 相比 ng-show 的性能方面会有很大的优化,当值为 false 的时候,ng-if 内所有绑定都不会执行,而ng-show 内依然会去重新渲染 ng-bind/ng-model。

使用


<a ng-if = "isShowDelete" class="tab-item">
<i class="icon ion-gear-a" ng-click ="showDelete()"></i>删除
</a> <a ng-show = "isShowDelete" class="tab-item">
<i class="icon ion-gear-a" ng-click ="showDelete()"></i>删除
</a> <a ng-hide = "isShowDelete" class="tab-item">
<i class="icon ion-gear-a" ng-click ="showDelete()"></i>删除
</a>

ng-class(动态加载 class )

注意有最外面要有{}

	<button class="button button-icon button-clear "
ng-class="{'ion-android-arrow-dropdown':data.tplType =='PIC','ion-plus-round':data.tplType =='NOTE'}">
</button>

ng-model(双向绑定 使UI即时刷新)

注意model不要使用简单类型,否则会出现断层(用data封装一下)

	<textarea placeholder="Note" class="common-text" ng-model="data.newNote.desc"></textarea>

ng-include(实现界面局部切换)

	<div ng-include="template"></div>
	//ng-include:的属性应该为template的url,其根目录为 www
$scope.template = 'app/myapp/temp/temp-product-detail.html';

Ionic/Angularjs 知识点解析的更多相关文章

  1. Cordova Ionic AngularJS

    实践分享:开始用Cordova+Ionic+AngularJS开发App http://www.cocoachina.com/webapp/20150707/12395.html

  2. Ionic 常用组件解析

    Ionic 常用组件解析 $ionicModal(弹出窗口): //创建一个窗口 //此处注意目录的起始位置为app $ionicModal.fromTemplateUrl('app/security ...

  3. ionic项目结构解析

    ionic项目结构解析 原始结构 创建一个IonicDemo项目 'ionic start IonicDemo sidemenu' 这种结构多模块开发比较麻烦,因为view跟controller分开路 ...

  4. 知名互联网公司校招 Java 开发岗面试知识点解析

    天之道,损有余而补不足,是故虚胜实,不足胜有余. 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几 ...

  5. Java 面试知识点解析(一)——基础知识篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  6. Java 面试知识点解析(二)——高并发编程篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  7. Java 面试知识点解析(三)——JVM篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  8. Java 面试知识点解析(四)——版本特性篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  9. Java 面试知识点解析(五)——网络协议篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

随机推荐

  1. SUSE 11下安装DPDK

    SUSE下安装与centos下安装有稍许不同: # cd  dpdk-1.8.0 # grep -rn Werror . |grep -iE "Makefile|mk" |awk ...

  2. Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)

    最近一直在看Java的相关东西,因为我们在iOS开发是,无论是Objective-C还是Swift中,经常会用到委托代理回调,以及Block回调或者说是闭包回调.接下来我们就来看看Java语言中是如何 ...

  3. MySql学习笔记(一) —— 关键字的使用

    1.distinct关键字 作用:检索出有不同值的列,比如一个商品表中存在供应商vend_id,一个供应商会对应很多商品,我们要查找有多少供应商,就可以用到该关键字去重. select distinc ...

  4. 第6章 影响 MySQL Server 性能的相关因素

    前言: 大部分人都一致认为一个数据库应用系统(这里的数据库应用系统概指所有使用数据库的系统)的性能瓶颈最容易出现在数据的操作方面,而数据库应用系统的大部分数据操作都是通过数据库管理软件所提供的相关接口 ...

  5. 利用EF ORM Mysql实体运行程序出错解决方案

    程序环境:VS2013 + mysql (server 5.7 + connector net 6.9.9 + for visual studio 1.2.6) + entity framework ...

  6. 6.类似Object监视器方法的Condition接口

    在<1.有关线程.并发的基本概念>中,我们利用synchronized关键字.Queue队列.以及Object监视器方法实现了生产者消费者,介绍了有关线程的一些基本概念.Object类提供 ...

  7. cas4.2.7与shiro进行整合

    准备工作 cas单点登录开始前准备,请参考cas4.2.7实现单点登录. 与shiro进行整合 注:准备工作的基础上,对cas客户端进行如下改进. 引入相关jar包 shiro-cas-1.2.6.j ...

  8. day5_ 导入模块和包

    ######################模块导入模块做的事1.产生新的名称空间2.以新建的名称空间为全局名称空间,执行文件的代码3.拿到一个模块名spam,指向spam.py产生的名称空间 imp ...

  9. 【2017-06-01】Linq基础+Lambda表达式实现对数据库的增删改查

    一.Linq to sql 类 高集成化的数据库访问技术 使用Linq可以代替之前的Ado.Net.省去了自己敲代码的实体类和数据访问类的大量工作. 实体类: 添加一个Linq to sql 类 -- ...

  10. 每天4亿行SQLite订单大数据测试(源码)

    SQLite单表4亿订单,大数据测试 SQLite作为嵌入式数据库的翘楚,广受欢迎!新生命团队自2010年以来,投入大量精力对SQLite进行学习研究,成功应用于各系统非致命数据场合. SQLite极 ...