Ich möchte wissen, ob es eine Möglichkeit einen $stateParams
Parameter nach einer Änderung bei einem angular material switch
<section id="app_controls">
<span style="margin-right: 10px;">Ro</span>
<md-switch class="md-primary"
ng-model = "data.lang"
aria-label="Switch language"
ng-true-value="'en'"
ng-false-value="'ro'"
ng-change="setLang(data.lang)"
>En</md-switch>
<span id="exit"></span>
</div>
</section>
Steuerung der Aktualisierung
.controller('homeController', ['$stateParams','$state', '$scope', 'PageProperties', 'loadMyData',
function($stateParams, $state, $scope, PageProperties, loadMyData){
//set page elements
var properties = PageProperties.setProps("home", loadMyData);
$scope.props = properties;
$scope.lang;
$scope.setLang = function(lang) {
$scope.message = lang;
};
}])
route.js
.state('home', {
url: '/home?lang',
params: { lang: 'ro'},
templateUrl: 'views/home/home.html',
controller: 'homeController',//'homeController'
resolve:{
//loadResources e doar o denumire, nu vreun key-word
loadResources: ['$ocLazyLoad', function($ocLazyLoad) {
// you can lazy load files for an existing module
//conteaza ordinea in care le scriu
return $ocLazyLoad.load(['pageNavPropsService', 'homeCtrl','homeDirective']);
}],
loadMyData: ['$stateParams', 'GetDataService', function($stateParams, GetDataService){
//get innitial data for states
var path = '_global/views/services/json/' + $stateParams.lang + '_data.json';
return GetDataService.getData(path);
}]
}
})
Ich kann auf nichts anderes von der Steuerung außer $scope
innerhalb von setLang()
Funktion zugreifen.
Was ich versuche zu erreichen ist, einen Sprachschalter zu haben, der den Zustandsparameter lang
aktualisiert - was ich hoffe, dass er für jeden anderen Zustand bei Zustandsänderung gleich bleibt. Ich möchte diesen Zustand auch neu laden, nachdem sich der Parameter geändert hat.
Wie kann ich das erreichen?
Haben Sie einen besonderen Grund haben nicht die Sprache in rootScope zu speichern. Sie müssen die Statusparameter also nicht jedes Mal aktualisieren, wenn ein Benutzer eine Sprache ändert. Dies bedeutet auch, dass Sie den Verwaltungsaufwand für Ihre Sprachvariable in Ihrem Router reduzieren. – ankitjain11
Ich glaube nicht - ich bin ein Neuling in eckigen, so dass ich dachte, dass es getan werden könnte - aber ich stecke jetzt fest. Wie kann es mit Ihrer Variante gemacht werden? – sTx