我正在尝试将Snap.svg包装为我的应用程序的服务.下面的代码有效,但这是正确的方法吗?
var svgService = angular.module("svgService", []);
svgService.factory("svgService", [
function () {
if (Snap) {
return Snap;
}
}
]);
Run Code Online (Sandbox Code Playgroud)
如果不存在,您的if检查会抛出ReferenceError: Snap is not defined错误Snap.
你可以像这样替换条件语句是安全的:
if (typeof Snap !== 'undefined') {
Run Code Online (Sandbox Code Playgroud)
或者如果Snap是window,请直接引用它:
if (window.Snap) {
Run Code Online (Sandbox Code Playgroud)
甚至更好,至少在进行单元测试时,使用内置$window服务,因为它允许你模拟它.
svgService.factory("svgService", function ($window) {
// the if check is unnecessary since an undefined
// is returned anyway when the Snap doesn't exist.
return $window.Snap;
});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2583 次 |
| 最近记录: |