angular.module(‘demo.stackedMap‘,[])
// 提供一个服务
.factory(‘$$stackedMap‘,function(){
return {
createNew:function(){
var stack = [];
return {
// 添加方法
add:function(key,value){
stack.push({
key:key,
value:value
})
},
get:function(key){
for(var i = 0;i<stack.length;i++){
if(key === stack[i].key){
return stack[i];
}
}
},
keys:function(){
var keys = [];
for(var i = 0;i<stack.length;i++){
keys.push(stack[i].key);
}
return keys;
},
top:function(){
return stack[stack.length -1];
},
remove:function(key){
var idx = -1;
for(var i = 0;i<stack.length;i++){
if(key = stack[i].key){
idx = i;
break;
}
}
return stack.splice(idx,1)[0];
},
removeTop:function(){
return stack.splice(stack.length-1,1)[0];
},
length:function(){
return stack.length;
}
}
}
}
});
原文:http://my.oschina.net/bosscheng/blog/516893