就像这个人posted here一样,我使用Angular Material的$ md-toast服务来在API调用返回错误时通知用户。我找到了“循环依赖”并找到了(之前引用的)文章。
之间有什么区别
syntax: regexp
# dotfiles
(?<![^/])\.
和
.factory('toastHttpInterceptor', function ($mdToast) {
return {
responseError: function(response) {
$mdToast.showSimple('Error');
}
};
});
??第二个如何删除“找到循环依赖”问题?
答案 0 :(得分:1)
第二个删除循环依赖,因为加载模块时,首先解析对工厂的调用,因此模块理解:
toastHttpInterceptor <- injector
直接或间接地,您的mdToast将具有此依赖路径:
mdToast <- ... <- toastHttpInterceptor
但是当自己调用该代码时,mdToast将被解析为 lazily 。你得到参考懒惰所以你可以使用它,直到你需要它才能获得它,而不是在定义时间获得它。
所以:
$mdToast
将存在,虽然未指定为依赖(因为你不能),并在代码执行中询问它( 之后>初始化;模块及其部件已加载。)