当我在另一个指令中更新列表时,如何在指令内更新列表?

时间:2014-11-07 16:53:32

标签: angularjs angularjs-directive

我在html中有两个指令。

在第一个用户可以添加“类别” 在另一个指令中,用户可以在其中添加过程。

添加程序时,您必须选择它所属的类别。

当我添加一个类别时,select in过程应该更新但不更新。

我必须刷新页面才能看到更新的列表 每次更新类别列表时,如何告诉指令更新类别?

我对两个指令都使用相同的控制器。

1 个答案:

答案 0 :(得分:0)

您需要一项服务来在指令之间共享数据,例如

app.factory('dataService', [function(){
  return { items: [] };
}]);

现在,您的两个指令都可以通过访问此服务来处理项目

app.directive('dir1', function(dataService){
  return {
    restrict: 'E',
    template: '<h3>Directive 1</h3>' + 
    '<div ng-repeat="item in data.items">' + 
      '<input type="text" ng-model="item.name"/>' + 
    '</div>',
    link: function(scope, elem, attr) {
      scope.data = dataService;
    }
  };
});

app.directive('dir2', function(dataService){
  return {
    restrict: 'E',
    template: '<h3>Directive 2</h3>' + 
    '<div ng-repeat="item in data.items">' + 
      '<input type="text" ng-model="item.name"/>' + 
    '</div>',
    link: function(scope, elem, attr) {
      scope.data = dataService;
    }
  };
});

如果您分享一些示例代码,我会根据您的需要更新上面的示例。