我一直在构建一个Ionic应用程序,然后开始实施ngStorage。这是一个简单易用的方法,可以简单地扩展我的应用程序并存储适合范围的内容。例如,我去过那里,$scope.listOfThings
我用$scope.$storage.listOfThings
替换了它。
$scope.$storage.listOfThings = new ListOfThings(things);
这很好用,但是listOfThings上有一个原型(这个问题当然是简化的):
.factory('ListOfThings', function(Task) {
var ListOfThings = function(things) {
this.listOfThings = things
};
ListOfThings.prototype.addThing = function(thing) {
this.listOfThings.push(thing);
};
return ListOfThings;
});
现在当我像以前一样调用addThing函数时($scope.$storage.listOfThings.addThing(thing);
我得到$scope.$storage.listOfThings.addThing is not a function
这是有道理的,因为原型没有存储在本地存储中,但这里的解决方案是什么?我并不想删除原型,我也不想存储$ storage版本和listOfThings的常规版本。我错过了什么?
答案 0 :(得分:2)
本地存储是一种持久性模型。它假设存储数据而不是具有功能的对象。您应该将列表的数据存储在本地存储中,然后检索它,然后将其传递给工厂。向工厂添加一个方法,该方法将接收作为参数的事物列表。这样,您就可以使用正确的数据初始化工厂并保留功能