我有一些基本的角代码敛导航菜单为登录和注销的用户,并存储在菜单$localStorage
然后将它们切换到$rootScope
当输入/输出等右侧分配 - 这怎么可能?
下面在用户登录就是一个简化版本代码为这个问题的目的。
看起来好像其中一行代码实际上会导致左侧被分配到右侧。
$localStorage.navigation = {};
$rootScope.nav = {};
// save the nav menus in local storage
$localStorage.navigation.loggedIn = "nav menu json";
// use local storage to set the rootscope
$rootScope.nav = $localStorage.navigation;
/* should be..
$rootScope.nav = {loggedIn:'nav menu json'};
$localStorage.navigation = {loggedIn:'nav menu json'};
*/
// set the nav menu - Right-hand-assignment???
$rootScope.nav.current = $localStorage.navigation.loggedIn;
/* should be..
$rootScope.nav = { loggedIn:'nav menu json', current: 'nav menu json' };
$localStorage.navigation = { loggedIn:'nav menu json' };
*/
console.log($rootScope.nav.current); // 'nav menu json' as expected
console.log($localStorage.navigation.current); // 'nav menu json', WHAT??!!
/* actually..
$rootScope.nav = { loggedIn:'nav menu json', current: 'nav menu json' };
$localStorage.navigation = { loggedIn:'nav menu json', current: 'nav menu json' };
*/
在这里发生了什么?
这个'$ rootScope.nav = $ localStorage.navigation;'传递一个对象引用...覆盖最初的空对象。 –