我在控制器中有这样的功能。
cl.translateCall = function () {
$http.get(`${API_URL}/langChange/` + selectedLanguage).
then(function onSuccess(response) {
input = response.data;
console.log(input)
}).
catch(function onError(response) {
console.log(response)
});
}
我在这个模块中有一个自定义过滤器
.filter('languageTranslate',['$http', function($http) {
return function(input) {
if(selectedLanguage != null){
/*want to call controller function*/
}else{
return input;
}
}
}]);
如何在Angular JS自定义过滤器中调用上述控制器功能?我是Angular JS的新手。
答案 0 :(得分:1)
好吧,你可以将范围传递给过滤器。我不知道你如何使用上面的代码,但如果你理论上有:
{{ someVar | languageTranslate }}
然后,您可以通过添加:this
{{ someVar | languageTranslate:this }}
并调用这样的范围方法
return function(input, scope) {
if (scope.selectedLanguage != null) {
scope.functionName()
} else {
return input
}
}