Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS中的角度平移同步性问题_Javascript_Angularjs_Internationalization_Angular Translate - Fatal编程技术网

Javascript JS中的角度平移同步性问题

Javascript JS中的角度平移同步性问题,javascript,angularjs,internationalization,angular-translate,Javascript,Angularjs,Internationalization,Angular Translate,角度平移作为视图中的过滤器非常有效。 我正在使用angular translate loader静态文件和外部文件,如locale en.json等 问题是当我尝试这样做时: var placeholder = $translate('placeholder.NAME') .then(function (translatedValue) { return translatedValue;

角度平移作为视图中的过滤器非常有效。 我正在使用angular translate loader静态文件和外部文件,如
locale en.json

问题是当我尝试这样做时:

var placeholder = $translate('placeholder.NAME')
                    .then(function (translatedValue) {
                        return translatedValue;
                    });
<h1>{{ 'TITLE.HELLO_WORLD' | translate }}</h1>
我总是得到一个承诺,在UI中它显示为
{}
,而不是英文的单词名等

在JS中使用角度平移的正确方法是什么

编辑: 尝试此操作并得到以下结果(仍未解决)


我建议让您的控制器不受转换逻辑的影响,并在视图中直接转换字符串,如下所示:

var placeholder = $translate('placeholder.NAME')
                    .then(function (translatedValue) {
                        return translatedValue;
                    });
<h1>{{ 'TITLE.HELLO_WORLD' | translate }}</h1>
{{'TITLE.HELLO{u WORLD}

我建议让您的控制器不受转换逻辑的影响,并在视图中直接转换字符串,如下所示:

var placeholder = $translate('placeholder.NAME')
                    .then(function (translatedValue) {
                        return translatedValue;
                    });
<h1>{{ 'TITLE.HELLO_WORLD' | translate }}</h1>
{{'TITLE.HELLO{u WORLD}
您可以使用函数获取值,而无需承诺:

var translation = $translate.instant('placeholder.NAME');
但是,这并不等待翻译文件加载。您应该确保在加载翻译文件后调用此函数。

您可以使用函数获取值,而无需承诺:

var translation = $translate.instant('placeholder.NAME');
但是,这并不等待翻译文件加载。您应该确保在加载翻译文件后调用此功能。

从网站

从网站


@itamar它取决于最终如何使用变量
占位符
。它可能应该是
$scope.placeholder
。它实际上被放入一个scope数组中,所以我把它作为一个局部变量来保存。@itamar我明白了。那么你应该在回调中这样做。好吧,我尝试了你的解决方案,结果如下:【对可读性提出质疑】@itamar,这不好吗?@itamar这取决于你最终如何使用变量
占位符
。它可能应该是
$scope.placeholder
。它实际上被放入一个scope数组中,所以我把它作为一个局部变量来保存。@itamar我明白了。那么你应该在回调中这样做。好吧,我尝试了你的解决方案,下面是我得到的:【对可读性提出质疑】@itamar,这不好吗?是的。关键是,这已经在起作用了——在显示数据之前,我需要以控制器的方式进行翻译。是的。关键是,这已经在起作用了——在显示数据之前,我需要以控制器的方式进行翻译。