javascript - Share data between controllers with a service (AngularJS) -
javascript - Share data between controllers with a service (AngularJS) -
i want build site, supports several languages. wanted utilize angularjs controllers controll view. have written script, next error: typeerror: cannot read property 'getlang' of undefined
here angularjs code:
var myapp = angular.module('myapp',[]); myapp.service('languageservice' , function() { var language = 'en'; homecoming { getlang: function() { homecoming language; }, setlang: function(ind) { if (ind == 0) { language = 'en'; } else if (ind == 1) { language = 'ru'; } } }; }) myapp.controller('changelangctrl', ['$scope', function($scope, languageservice) { $scope.changelang = function(ind) { languageservice.setlang(ind); } }]) myapp.controller('navictrl', ['$scope', function($scope, languageservice) { var currentlang = languageservice.getlang(); if (currentlang == 'en') { $scope.menu = ['about us', 'service', 'contacts']; } else { $scope.menu = ['О нас', 'Наши Услуги', 'Связь с нами'] } }]) so mistake? mean, initialize language variable en @ beginning. why getlang() function undefined?
you forget inject languageservice dependency in controller,thats why throwing error. seek this, var myapp = angular.module('myapp',[]); myapp.service('languageservice' , function() { var language = 'en'; homecoming { getlang: function() { homecoming language; }, setlang: function(ind) { if (ind == 0) { language = 'en'; } else if (ind == 1) { language = 'ru'; } } }; }) myapp.controller('changelangctrl', ['$scope','languageservice', function($scope, languageservice) { $scope.changelang = function(ind) { languageservice.setlang(ind); } }]) myapp.controller('navictrl', ['$scope','languageservice', function($scope, languageservice) { var currentlang = languageservice.getlang(); if (currentlang == 'en') { $scope.menu = ['about us', 'service', 'contacts']; } else { $scope.menu = ['О нас', 'Наши Услуги', 'Связь с нами'] } }])
javascript angularjs
Comments
Post a Comment