我正在创建一个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;
}
});
}
});
我想执行此指令并根据结果返回true或false(我知道这是不正确的,但是我在指令和$ emit $ on上是新手)
我正在我的控制器中称呼它
$scope.$emit('validateInputFields', $scope.mddoh);
但这是打印对象
{name: "validateInputFields", targetScope: b, stopPropagation: ƒ, preventDefault: ƒ, defaultPrevented: false, …}
在我的场景中使用$ emit和$ on的最佳方法是什么
答案 0 :(得分:0)
将控制器中的$scope.$emit
更改为
$rootScope.$broadcast('validateInputFields', $scope.mddoh);
并在您的指令中将scope.$on
更改为
$rootScope.$on
别忘了注入$rootScope
。