gpt4 book ai didi

javascript - 检查angularjs中的条件

转载 作者:数据小太阳 更新时间:2023-10-29 04:27:28 24 4
gpt4 key购买 nike

基本上我有一个工厂

angular.module('app').factory('gService',gService);
function gService($filter, $window) {
function confirmDialog(message, success, fail) {
var confirmMessage = navigator.notification.confirm(
message,
onConfirm,
'',
[$filter('translate')('OK'), $filter('translate')('CANCEL')]
);
function onConfirm(index) {
return index === 1 ? success() : fail();
}
return confirmMessage;
}
}

我想检查工厂外的情况,功能是否执行

if(gService.confirmDialog.onConfirm){

}

这是行不通的。我如何检查以 Angular 执行的函数?

最佳答案

EMIT & BROADCAST

如果您检查 onConfirm 事件,它将控制 onConfirm 函数定义在 gService.confirmDialog 对象上,其中语句被写入。这不是异步和 promise 的工作。

if(gService.confirmDialog.onConfirm){

}

您需要先通知您的听众。之后收听该事件以完成您的工作。

您可以广播发出事件到等待onConfirm事件的范围

   angular.module('app').factory('gService',gService);
function gService($rootScope, $filter, $window) {
function confirmDialog(message, success, fail) {
var confirmMessage = navigator.notification.confirm(
message,
onConfirm,
'',
[$filter('translate')('OK'), $filter('translate')('CANCEL')]
);
function onConfirm(index) {
var result = index === 1 ? success() : fail();
$rootScope.$emit('onConfirm', result);
//or
//$rootScope.$broadcast('onConfirm', result); -> this goes downwards to all child scopes. Emit is upwarded.

}
return confirmMessage;
}
}

之后你应该检查 onConfirm 事件是否被触发。这会执行您需要的控制。

function onConfirmFunction( result ){ //You will get the success or fail methods result here... };

$rootScope.$on('onConfirm', onConfirmFunction);

关于javascript - 检查angularjs中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45095152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com