AngularJS + Hoodie:如何做一个正确的数据流?

AngularJS + Hoodie: How to do a correct data flow?

我想结合使用 AngularJS 和连帽衫,但我不确定如何以正确的方式进行。 假设我有一个基本的 AngularJS 控制器

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

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

点击例如后

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

一切正常。但是现在我想使用连帽衫。目前我正在尝试这个:

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 table(通过 ng-repeat="entry in table")未更新。

第一个问题:你知道为什么吗?我觉得哪里不对?

第二个问题:结合Hoodie和AngularJS有什么好的方法?在 table 上 $watch 并在其中插入项目并在更改后通过 Hoodie 存储它会更好还是相反,然后将新项目添加到 hoodie.store 然后on("entries:add") 做一些 Angular 事情?

提前致谢!

嘿嘿=)

首先:如果您通过 'external' 事件更新数据结构(在本例中为连帽衫),您需要触发摘要循环,例如$rootScope.$apply();

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