如何在$ translateReady中调用$ translateChangeSuccess函数?

时间:2017-02-01 10:10:33

标签: angularjs localization internationalization angular-translate nls

有时在加载页面时,SELECT * FROM Table1 WHERE Table1.Field1 = [Criteria] or Table1.Field1 is null and not exists (SELECT * FROM Table1 WHERE Table1.Field1 = [Criteria]) 不会被触发并抛出错误。 所以,每当$ translate准备就绪时,我需要调用translateChangeSuccess。如何以适当的方式做到这一点?

这不起作用。它没有进入'$ translateReady'功能。

$translateChangeSuccess

但是,如果我使用这个功能,它就会进入函数

$rootScope.$on('$translateReady', function () {
        console.log("It enterd Translate ready"+$translate.isReady());
        $rootScope.$on('$translateChangeSuccess', myfunction());        
                });  

我需要在准备就绪时致电$translate.onReady().then(function() { console.log("It enterd Translate ready"+$translate.isReady()); $rootScope.$on('$translateChangeSuccess', myfunction()); }); 。我能怎么做 ?如果有人知道请帮忙。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在根范围内广播,并在您想要的任何范围内收听它。此外,您不必在上一个事件处理程序中调用它,实际上您正在执行的是在$translateChangeSuccess触发时添加事件侦听器(又名$translateReady)。

无论如何,请考虑使用这种方式:

$translate.onReady().then(function() {
    console.log("It enterd Translate ready"+$translate.isReady());
    $rootScope.$broadcast('$translateChangeSuccess');     
});

$rootScope.$on('$translateChangeSuccess', myfunction);

function myfunction(){
    console.log("myfunction called");
}