【问题标题】:angularJS validate input field with the help of $emit and $onangularJS 在 $emit 和 $on 的帮助下验证输入字段
【发布时间】:2019-03-28 12:26:59
【问题描述】:

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

所以我使用$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;
            }
        });
    }
});

我想执行这个指令并根据结果返回真或假(我知道这是不正确的,但我在指令和 $emit $on 方面非常新)

我在我的控制器中调用它

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

但这是打印一个对象

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

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

【问题讨论】:

    标签: angularjs angularjs-directive broadcast angularjs-controller emit


    【解决方案1】:

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

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

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

    $rootScope.$on
    

    别忘了注入$rootScope

    【讨论】:

    猜你喜欢
    • 2013-06-27
    • 2020-02-16
    • 2018-02-04
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多