Wpis z mikrobloga

mam sobię funkcję

function TranslateCtrl ($translate, $scope) {

$scope.changeLanguage = function (langKey) {
$translate.use(langKey);
};

};

i chcę $scope zamienić na vm = this;
Robię coś takiego, ale nie działa. Gdzie mam błąd?

function TranslateCtrl ($translate, $scope) {
var vm = this;
vm.changeLanguage = changeLanguage;

function changeLanguage (langKey) {
return translate.use(langKey);
};

};
#javascript #angularjs
  • 25
@Marmite: aktualnie jest taki

'use strict';

angular.module('translateApp',['pascalprecht.translate'])
.controller('TranslateCtrl', TranslateCtrl);
TranslateCtrl.$inject =['$translate','$scope'];

function TranslateCtrl ($translate, $scope) {
var vm = this;

function changeLanguage (langKey) {
return $translate.use(langKey);
};

vm.changeLanguage = changeLanguage;

};
@TeflonDon: No to już nie wiem. Jeśli poprawnie załadowałeś moduły, to wszystko powinno działać. Nie widzę żadnego błędu, więc problem musi leżeć gdzieś indziej. Wrzuć na jakiś http://plnkr.co bo tak na ślepo to ciężko stwierdzić co jest nie tak.