Angularjs从指令最佳实践中观察服务变量

时间:2015-05-28 08:38:26

标签: javascript angularjs angularjs-directive

我在尝试更改服务中的变量时尝试显示Bootstrap模式对话框。 我现在用广播这样做。我是棱角分明的新手,所以我们非常感谢任何有助于改进我的代码的帮助。 本规范有效,但我想知道这是否是正确的方法。

我的服务:



utils.service('UtilsService', function ($rootScope) {   
    this.objectToDelete = "";
    this.deleteMessage = "";
    this.DeleteObject = function (object, message) {
        this.objectToDelete = object;
        this.deleteMessage = message;
        $rootScope.$broadcast('objectChanged', this.objectToDelete);
    }

});




我的指示:



verwaltungApp.directive('deletedialog', ['UtilsService', function (UtilsService) {
return {
    restrict: 'E',
    controller: function ($scope, $attrs, UtilsService) {           
        $scope.$on("objectChanged", function (event, args) {
            if (UtilsService.objectToDelete) {
                $scope.ObjectToDelete = UtilsService.objectToDelete;
                $scope.Message = UtilsService.deleteMessage;
               $('#modalErrorDialog').modal('show');                   
            }
        });
        $scope.DeleteObject = function () {
            $scope.ObjectToDelete.Delete();
            $scope.ObjectToDelete = null;
            $('#modalErrorDialog').modal('hide');
        }

        $scope.Cancel = function () {
            $scope.ObjectToDelete = null;
            $('#modalErrorDialog').modal('hide');

        }         
    },      
    templateUrl: '/shared/DeleteDialog'
};
}]);



 我之前用$ watch尝试过,但这对我没用。 我想要做的主要是将此指令放在我的布局页面上,这样我就可以从任何一个控制器中调用它来删除我想要删除的对象。

0 个答案:

没有答案