1、使用AngularJS自帶的$cacheFactory服務
$cacheFactory 從字面直譯即為緩存工廠,可以用它來生成緩存對象,緩存對象以key-value的方式進行數據的存儲,在整個應用內是單例的,可以在service或者controller中注入這個服務,然后就可以用它來自由的存取對象以及各種變量,下面是一個簡單例子
- .controller('AppCtrl', function ($scope, $ionicModal, $timeout, $cacheFactory) {
-
- var user = {name: 'jax', age: 18, sex: '男'};
- var user_cache = $cacheFactory("user_cache");
- user_cache.put("lol",user);
- .controller('PlaylistCtrl', function ($scope, $stateParams, $cacheFactory) {
- var user_cache = $cacheFactory.get("user_cache");
- var user = user_cache.get("lol");
-
-
-
- console.log(user);
- });
當從AppCtrl對應頁面切換到PlaylistCtrl對應的頁面時,瀏覽器控制台打印結果:

$cacheFactory常用的幾個方位api如下:
- {{*}}
get({string} key)
— 返回與key
對應的value
值,如果未命中則返回undefined
。
- {void}
remove({string} key)
— 從緩存中刪除一個鍵值對
- {void}
removeAll()
— 刪除所有緩存中的數據
- {void}
destroy()
— 刪除從$cacheFactory
引用的這個緩存.
2、使用url傳參
例:playlists.htm頁面將 playlist.id 傳遞到 playlist頁面
- <ion-item href="#/app/playlists/{{playlist.id}}">
- .controller('PlaylistCtrl', function ($scope, $stateParams, $cacheFactory) {
- var user_cache = $cacheFactory.get("user_cache");
- var user = user_cache.get("lol");
-
-
-
- console.log(user);
-
- var playlistId=$stateParams.playlistId;
- console.log("playlistId:"+playlistId);
- });
需要注意的是必須在app.js路由中配置接受這個參數
- .state('app.single', {
- url: '/playlists/:playlistId', //配置多個參數用:a/:b/:c
- views: {
- 'menuContent': {
- templateUrl: 'templates/playlist.html',
- controller: 'PlaylistCtrl'
- }
- }
3、service或者factory傳值(service跟factory中都是單例模式,定義的變量在整個應用內唯一)
定義變量data
- angular.module('starter.controllers', [])
- .service('dataService',function () {
- var data="I come from service";
- return{
- getData:function () {
- return data;
- }
- }
- })
在controller中取出變量
- .controller('PlaylistCtrl', function ($scope, $stateParams, $cacheFactory,dataService) {
- console.log("sercice data:"+dataService.getData());
- });
4、使用H5本地存儲localStorage或者sessionStorage(還有indexDB,websql在數據量較大情況下使用)
getItem //取記錄
setItem//設置記錄
removeItem//移除記錄
key//取key所對應的值
clear//清除記錄
鍵值對存儲,用法也是非常簡單,上面給出了常用的api,
1、使用AngularJS自帶的$cacheFactory服務
$cacheFactory 從字面直譯即為緩存工廠,可以用它來生成緩存對象,緩存對象以key-value的方式進行數據的存儲,在整個應用內是單例的,可以在service或者controller中注入這個服務,然后就可以用它來自由的存取對象以及各種變量,下面是一個簡單例子
- .controller('AppCtrl', function ($scope, $ionicModal, $timeout, $cacheFactory) {
-
- var user = {name: 'jax', age: 18, sex: '男'};
- var user_cache = $cacheFactory("user_cache");
- user_cache.put("lol",user);
- .controller('PlaylistCtrl', function ($scope, $stateParams, $cacheFactory) {
- var user_cache = $cacheFactory.get("user_cache");
- var user = user_cache.get("lol");
-
-
-
- console.log(user);
- });
當從AppCtrl對應頁面切換到PlaylistCtrl對應的頁面時,瀏覽器控制台打印結果:

$cacheFactory常用的幾個方位api如下:
- {{*}}
get({string} key)
— 返回與key
對應的value
值,如果未命中則返回undefined
。
- {void}
remove({string} key)
— 從緩存中刪除一個鍵值對
- {void}
removeAll()
— 刪除所有緩存中的數據
- {void}
destroy()
— 刪除從$cacheFactory
引用的這個緩存.
2、使用url傳參
例:playlists.htm頁面將 playlist.id 傳遞到 playlist頁面
- <ion-item href="#/app/playlists/{{playlist.id}}">
- .controller('PlaylistCtrl', function ($scope, $stateParams, $cacheFactory) {
- var user_cache = $cacheFactory.get("user_cache");
- var user = user_cache.get("lol");
-
-
-
- console.log(user);
-
- var playlistId=$stateParams.playlistId;
- console.log("playlistId:"+playlistId);
- });
需要注意的是必須在app.js路由中配置接受這個參數
- .state('app.single', {
- url: '/playlists/:playlistId', //配置多個參數用:a/:b/:c
- views: {
- 'menuContent': {
- templateUrl: 'templates/playlist.html',
- controller: 'PlaylistCtrl'
- }
- }
3、service或者factory傳值(service跟factory中都是單例模式,定義的變量在整個應用內唯一)
定義變量data
- angular.module('starter.controllers', [])
- .service('dataService',function () {
- var data="I come from service";
- return{
- getData:function () {
- return data;
- }
- }
- })
在controller中取出變量
- .controller('PlaylistCtrl', function ($scope, $stateParams, $cacheFactory,dataService) {
- console.log("sercice data:"+dataService.getData());
- });
4、使用H5本地存儲localStorage或者sessionStorage(還有indexDB,websql在數據量較大情況下使用)
getItem //取記錄
setItem//設置記錄
removeItem//移除記錄
key//取key所對應的值
clear//清除記錄
鍵值對存儲,用法也是非常簡單,上面給出了常用的api,