Ionic/Angularjs 知识点解析
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'
}
}
跳转
- 使用js跳转
$state.go('app.myapp-home') - 在UI里使用href属性:
href="#/myapp/home" - 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 知识点解析的更多相关文章
- Cordova Ionic AngularJS
实践分享:开始用Cordova+Ionic+AngularJS开发App http://www.cocoachina.com/webapp/20150707/12395.html
- Ionic 常用组件解析
Ionic 常用组件解析 $ionicModal(弹出窗口): //创建一个窗口 //此处注意目录的起始位置为app $ionicModal.fromTemplateUrl('app/security ...
- ionic项目结构解析
ionic项目结构解析 原始结构 创建一个IonicDemo项目 'ionic start IonicDemo sidemenu' 这种结构多模块开发比较麻烦,因为view跟controller分开路 ...
- 知名互联网公司校招 Java 开发岗面试知识点解析
天之道,损有余而补不足,是故虚胜实,不足胜有余. 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几 ...
- Java 面试知识点解析(一)——基础知识篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(二)——高并发编程篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(三)——JVM篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(四)——版本特性篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(五)——网络协议篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
随机推荐
- python 基本模块
time & datetime模块 import timeimport datetime# ## # print("ss")# #time.sleep(5)# # prin ...
- PHP 底层的运行机制与原理 --转
发现一片总结的还不错的文章,记录一下 PHP说简单,但是要精通也不是一件简单的事.我们除了会使用之外,还得知道它底层的工作原理. PHP是一种适用于web开发的动态语言.具体点说,就是一个用C语言实现 ...
- chroot jail
注意,原标题是:Linux Virtualization using Chroot Jail,我实在不知道怎么翻译,所以,自作主张,选了chroot jail作为标题.原文地址 chroot jail ...
- SpringMVC中使用RedirectAttributes重定向传参,防止暴露参数
RedirectAttributes是SpringMVC3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的. 当我从jsp页面函数中带参数到controller层方法,方法执行完毕后返回 ...
- 项目管理之 Objective-C 编码规范
目录: 一.格式化代码 二.命名 命名要求 1. 类的命名: 规则: 大驼峰命名法,每个单词的首字母都采用大写字母.一般添加业务前缀.后缀一般是当前类的种类. ViewController:后缀:Vi ...
- JS中Node节点总结
Node的三个基本属性: 1.nodeType:表明节点类型,1是元素节点,3是文本节点. 2.nodeName: 表明节点名称,元素节点为标签名,文本节点为#text. 3.nodeValue:表 ...
- (原创) Maven查看JAR包的依赖关系
如果是用命令行,可进入项目所在目录,然后输入: mvn dependency:tree ,来查看jar包依赖关系. 另外还可以在eclipse操作,如下图所示: 点击run后,开始输出JAR包依赖树. ...
- Java IO流--练习2
1)写一个Java程序,输入3个整数,并求出三个数的最大数和最小数 代码: package 第十二章IO流; import java.io.BufferedReader; import java.io ...
- a标签点击之后有个虚线边框,怎么去掉
1.行内处理方式1 <a hidefocus="true" href="#"></a> 2.行内处理方式2,让a标签获得焦点就失去焦点, ...
- Macbook怎么强制关闭后台程序?Macbook强制关闭后台程序的方法
有时候我们的Macbook电脑运行某个程序卡在那里耗了很长时间,程序本身有可能提供了取消按钮,点了也没有反应,这时候我们就很想强制关闭它了,那么Macbook怎么强制关闭后台运行的程序呢?下面完美小编 ...