Perhaps this is a fundamental misunderstanding of Angular scope, but here goes.
I have a service that handles changing a language preference:
languageService.js
function languageService() {
var language = "en";
var service = {
getLanguage: getLanguage,
setLanguage: setLanguage
};
function getLanguage () {
return language;
}
function setLanguage (newLang) {
language = newLang;
}
return service;
}
I also have a filter that formats something:
someFilter.js
function myFilter(languageService) {
return function(num) {
var french = languageService.getLanguage() === 'fr';
if (french) {
return "is french!"
} else {
return "is other."
}
}
}
I try to use this filter in some HTML: Blah blah {{ 'test' | someFilter }}.
It works, but only on load; if I call setLanguage('en'), the binding doesn't change.