У меня есть кнопка, которая переключает режим администратора и клиента. Я положил его на корнеплод, чтобы получить доступ к нему повсюду.
Я использую angular-ui directive
для переключения.
Я поставил часы на эту модель. Но ничего не происходит. Любая идея, что может быть неправильным?
.run(['$rootScope', '$state', '$stateParams', '$location',
function ($rootScope, $state, $stateParams, $location) {
$rootScope.projectMode = 'Client';
$rootScope.$watch('projectMode', function(){
var path = $location.path();
alert("fire") //Only fire ones when the app starts
if($rootScope.projectMode === 'Client'){
var current = 'client'
var replace = 'admin'
} else {
var current = 'admin'
var replace = 'client'
}
var newUrl = path.replace(current, replace)
$location.url(newUrl);
})
}])
Это мой взгляд.
<div class="btn-group">
<button type="button" class="btn btn-default" ng-model="projectMode" btn-radio="'Client'">Klient</button>
<button type="button" class="btn btn-default" ng-model="projectMode" btn-radio="'Admin'">Admin</button>
</div>
btn-radio
является директива угловой пользовательский интерфейс для переключения.
Я проверил, что меняется $rootScope.projectMode
. Так должно быть что-то не так с $watch
.
Как вы меняете переменную projectMode? – doodeec
Когда вы пытаетесь изменить это позже, вы используете '$ rootScope.projectMode = 'некоторое значение value''? – m59
Я обновил вопрос с моей точки зрения. – Per