微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angularJS缓存的管理

在Angular里面,services作为单例对象在需要到的时候被创建,只有在应用生命周期结束的时候(关闭浏览器)才会被清除。而controllers在不需要的时候就会被销毁了。

这里指的不会消失是指 services原始保留的数据和方法
例:
var module = angular.module( "my.module",[] );
module.service( 'Book',[ '$rootScope',function( $rootScope ) {
var service = {
books:[
{ title: "Magician",author: "Raymond E. Feist" },

{ title: "The Hobbit",author: "J.R.R Tolkien" }
],
addBook:function ( book ) {
service.books.push( book );
$rootScope.$broadcast( 'books.update' );
}
}
return service;
}]);
这个server里的 Book. books里的数据 和 addBook 方法刷新是不会消失的

接着我们定义一个指令往 book.books里添加一些数据
module.directive( "addBookButton",[ 'Book',function( Book ) {
return {
restrict: "E,A",
link: function( scope,element,attrs ) {
element.bind( "click",function() {
Book.addBook( { title: "Star Wars",author: "George Lucas" } );
});
}
}
}]);
<div add-book-button>点击新增</div>
点击新增时在 Book.addBook里增加 { title: "Star Wars",author: "George Lucas" }
用ng-controller 可以循环读取数据可以读出来,但 这时候刷新页面 server只会保留原来的 Book. books里的数据 和 addBook 方法 新增的数据不会保存

原文地址:https://www.jb51.cc/angularjs/149293.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐