将本地存储包装在angular2中的服务中是否明智?有没有争论为什么要这样做呢?显然它更整洁。将服务作为组件的依赖注入调用。我没有看到任何其他“专业人士”。
例如(服务中的本地存储)
setHost(value: string) {
localStorage.setItem(STATIC_VARIABLE_KEY, value);
}
getHost(): string {
return localStorage.getItem(STATIC_VARIABLE_KEY);
}
答案 0 :(得分:1)
好主意的主要原因是仍有浏览器,在私有模式下不支持var list = ["img1", "img2", "img3"];
function ChangeBackground () {
document.getElementById('background').src = "images/"+list[i];
}
window.setInterval(ChangeBackground(), 4000);
,并且通过使用这个抽象层,您可以简单地替换localStorage
使用localStorage
,当它不可用时。
例如,在最新的High Sierra发布之前,即使是隐身模式的MacOS Safari也不支持它。 Mobile Safari也有这个问题。 (我认为它仍然存在于iOS 11上,不确定。)
但我建议使用一些现成的解决方案,而不是从头开始。看看这个模块:
https://github.com/phenomnomnominal/angular-2-local-storage
这样做的另一个原因可能是与服务器端呈现的兼容性(通过角度/通用),因为cookie
在服务器端根本不可用。