1

我想将 AngularJS 和 Hoodie 结合起来,但我不确定如何以正确的方式做到这一点。假设我有一个基本的 AngularJS 控制器

app.controller("c", function($scope) {
  $scope.table = [];

  $scope.onAdd = function(newEntry) {
      $scope.table.push(newEntry);
  };
});

点击例如后

<button ng-click="onAdd('test');">add</button>

一切都按预期工作。但现在我想用 Hoodie。目前我正在尝试这个:

app.controller("c", function($scope) {
  $scope.table = [];

  $scope.onAdd = function(newEntry) {
      $scope.table.push(newEntry);
  };

  hoodie.store.on('entries:add', $scope.onAdd);
});

和任何地方:hoodie.store.add("entries", tmpObject);

onAdd()调用并插入到table数组中(在开发人员控制台中验证),我的 html 表(通过ng-repeat="entry in table")没有更新。

第一个问题:你知道为什么吗?我认为这里有什么问题?

第二个问题:结合 Hoodie 和 AngularJS 的好方法是什么?最好$watch在桌子上插入物品并在更改后通过 Hoodie 存储它,或者相反,然后将新物品添加到 hoodie.store 然后 on("entries:add") 做一些 Angular东西?

提前致谢!

4

1 回答 1

2

嘿嘿=)

第一:如果您通过“外部”事件(在本例中为连帽衫)更新数据结构,则需要触发摘要循环,例如$rootScope.$apply()

第二:有一个由 Elmar 和我编写的hoodie-angular-plugin 。这解决了您的大部分基本任务。在这种情况下,这将是最简单的方法。

于 2015-03-05T10:41:24.627 回答