我在服务中有这样的功能:
Policies
是一个功能列表,如果违反了政策(例如密码没有数字或大写字母),会抛出错误
function myFunction(policies, password){
var policiesError = '';
policies.forEach(function(policy) {
try {
policy(password, payload);
} catch (err) {
policiesError += err.message + '\n'; // Also tried `concat()`
}
});
if (policiesError){
throw new Error(policiesError);
}
}
在我的controller
我有:
try{
myService.myFunction(myFunctions, 'password');
} catch (err){
$scope.policiesError = err.message; // Which is used in as {{policiesError}} to display
}
控制器中消息的结果如下:
"Password too shortPassword has no lettersInvalid characters in password"
但实际上我需要它:
"Password too short
Password has no letters
Invalid characters in password"
这很简单,但是我已经把头撞到了桌子上一段时间了,而且非常令人沮丧。
有关如何使用new Error
获取格式化好的消息并抓住它的任何建议吗?
答案 0 :(得分:1)
所以,@ Bergi让我意识到问题出在关于white-space-
的CSS属性上
我在我们的代码中编写了一个新功能,所以我没有移动任何CSS,也没有想到它。
但是,是的,CSS正在摆脱Javascript中添加的\n
。
道歉,从一开始就没有检查一些简单的东西。
答案 1 :(得分:0)
使用 \r\n
而不仅仅是 \n
。
throw new Error("\r\nLine 1 Error Description.\r\nLine 2 Error Description.");
将返回:
JavaScript Error line(102): // Your error with message below.
Line 1 Error Description.
Line 2 Error Description.