gpt4 book ai didi

angularjs - 在 Angular 中错误地使用可重用指令时报告错误的好模式是什么?

转载 作者:行者123 更新时间:2023-12-01 03:50:17 25 4
gpt4 key购买 nike

在 Angular 中编写可重用指令时报告错误的好模式是什么?

我正在编写一些组件作为 angular 指令,目的是重用它们,希望开发人员稍后加入这个项目,而不是我现在拥有的关于使用该指令的所有信息。

我正在记录有关它的使用的指令和代码,并且我有单元测试,这些单元测试基本上是正确使用它以获取附加“文档”的示例。当开发人员使用指令构建页面时,我仍然希望有意义的响应/异常返回给开发人员。

是否有一种抛出常见异常或记录的模式,用于帮助向学习使用它的开发人员传达指令的误用?

最佳答案

虽然这可能比 Angular 更像是一个通用的 JS 问题,但相同的理论仍然适用。你应该在 try/catch/finally 块中包装东西并在适当的地方抛出错误。

function Blah(isRequired, isOptional){
var X = 7, Y = 0;
try{
Y = X * isRequired;
}
catch(err){
throw new Error('You must provide a value for "isRequired"');
}
finally{
//this example has none, but do cleanup things here
}
}

如果要显示日志记录,可以使用 Angular 包装器写入控制台。它将在使用 IE 并尝试写入 console.debug 时通过将它们写入 console.log 来防止错误。

设置:
myapp.config(['$logProvider', function($logProvider){
$logProvider.debugEnabled(true);
})
.run(['$rootScope', '$log',
function ($rootScope, $log) {
'use strict';

//create a reference to $log on the root scope
$rootScope.$log = $log;
}]);

用法:
$scope.$log.log(message);
$scope.$log.debug(message);
$scope.$log.info(message);
$scope.$log.warn(message);
$scope.$log.error(message);

您还可以通过添加属性来启用/禁用指令中的日志记录。类似于启用数据日志的东西。
<div data-log-enabled my-directive>
</div>

在您的指令中,您可以这样处理:
link: function(scope, element, attributes){
if(attributes.logEnabled){
scope.$log.debug('blah');
}
}

这避免了不必要的控制台输出,这可能会减慢应用程序的速度,并且还可以帮助开发人员最大限度地减少他们为找到所需信息而必须通读的内容。

关于angularjs - 在 Angular 中错误地使用可重用指令时报告错误的好模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23433181/

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