angularJS 在 $emit 和 $on 的帮助下验证输入字段

angularJS validate input field with the help of $emit and $on

我正在创建一个 Web 应用程序,我想在其中验证我的一些输入字段

所以我使用 $emit$on 来保持简短

我创建了一个如下所示的指令

angular.module('myapp').directive('validateFields', function () {
    return function (scope, element, attrs) {
        scope.$on('validateInputFields', function (param) {
            if (param == undefined || param == null || param == '') {
                return true;
            } else {
                return false;
            }
        });
    }
});

我想执行这个指令,return 根据结果判断真假(我知道这是不正确的,但我对指令和 $emit $on 很陌生)

我在我的控制器中调用它

$scope.$emit('validateInputFields', $scope.mddoh);

但这是在打印对象

{name: "validateInputFields", targetScope: b, stopPropagation: ƒ, preventDefault: ƒ, defaultPrevented: false, …}

在我的场景中使用 $emit 和 $on 的最佳方式是什么

将控制器中的 $scope.$emit 更改为

$rootScope.$broadcast('validateInputFields', $scope.mddoh);

并在您的指令中,将 scope.$on 更改为

$rootScope.$on

并且不要忘记注入 $rootScope