ng存储和原型

ngStorage and Prototypes

本文关键字:原型 存储 ng      更新时间:2023-09-26

我一直在构建一个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

这是有道理的,因为原型不存储在本地存储中,但是这里的解决方案是什么?我真的不想删除原型,我也不想存储 listOfThings 的$storage版本和常规版本。我错过了什么?

本地存储是一种持久性模型。它假设存储数据而不是带有函数的对象。您应该将列表的数据存储在本地存储中,然后检索它,然后将其传递给工厂。向工厂添加一个方法,该方法将作为参数接收事物列表。这样,您将能够使用正确的数据初始化您的工厂并保留功能