我是新來的角和仍然學習。如何在角度中將rootScope更改爲Service?
這裏是sample fiddle。
我想知道如何將其轉換爲服務?我發現在NavController
和HeaderController
上寫setStatus似乎是相當錯誤的,有沒有更好的方法爲這個工作?
方案
當顯示close
按鈕,用戶點擊,這與背景將同時在用戶上menu
按鈕,點擊會顯示沒有整體nav
,nav
將獲得一類is-active
這使得nav
塊。
JS
var app = angular.module('myapp', ['ngRoute']);
app.controller('NavController', function($rootScope, $scope) {
$rootScope.status = 'off';
this.setStatus = function(status) {
$rootScope.status = status;
};
});
app.controller('HeaderController', function($rootScope, $scope) {
this.setStatus = function(status) {
$rootScope.status = status;
};
});
DOM
<div ng-app="myapp">
<nav ng-controller="NavController as nav" ng-class="{ 'is-active': status == 'on' }" ng-init="nav.status" class="nav">
<div class="nav__wrapper">
<button ng-click="nav.setStatus('off')" class="nav__close">close</button>
</div>
</nav>
<header ng-controller="HeaderController as header">
<button ng-click="header.setStatus('on')">menu</button>
</header>
</div>
任何幫助將不勝感激,謝謝!
對於小提琴的工作(至少不會失敗,未知模塊),點擊在JavaScript窗格中的Javascript選項,並選擇「加載類型:沒有換行 - 在< body >」 –