Angularjs Directive Assistance with Bootstrap-UI $Dialog



我正在创建一个自定义指令,该指令在ng repeat中创建一个按钮,并将绑定到当前项。单击按钮后,将打开一个$对话框,其中包含一个select2框,用于选择和更改用户。保存时,用户将替换ng重复中的当前用户。我已经完成了所有这些工作(尽管我很感激任何代码审查/修订的帮助,因为这是我的第一条指令),我陷入困境的部分是现在如何将回调合并到angular服务,以将更新的用户推回到数据库。

这是我目前的博客:http://plnkr.co/edit/nzR3mjeLK3kPynSIjE7t?p=preview

调用父控制器中的函数以调用服务更新的最佳选项是什么?

指令本身有没有办法处理这个问题?

如有任何帮助或指示,我们将不胜感激。

您可以注入一个服务模块,该模块具有在服务内部实现的数据持久性,以便将逻辑与指令分离。

.factory('service', function () {
    var service = {
      doSomething: function(result){
        //logic to do the data persistence
        console.log('saved!');
      }
    }
   return service;
})
.directive('delegateApproval', function($dialog, service) { //inject the 'service'
$scope.openDelegate = function(approval) {
    d.open().then(function(result) {
        $scope.approval._approver._user._lastName = '';
        $scope.approval._approver._user._firstName = result.empName;
        service.doSomething(approval); // consume the service
    });
};

演示

最新更新