Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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 AngularJS筛选器取决于异步调用_Javascript_Angularjs_String_Asynchronous - Fatal编程技术网

Javascript AngularJS筛选器取决于异步调用

Javascript AngularJS筛选器取决于异步调用,javascript,angularjs,string,asynchronous,Javascript,Angularjs,String,Asynchronous,我目前正在尝试学习如何使用Angular,我的任务是重写现有的功能页面以使用Angular 我们的核心功能之一在于使用JavaScript函数翻译字符串,但是,这个翻译方法只应该在翻译字符串加载到脚本中之后调用,并且加载是异步完成的 我们目前使用回调来实现这种行为,但由于角度的性质(至少在我的理解中),我的数据在呈现页面时立即显示 我有需要翻译的字符串,但我想在表中显示翻译后的字符串,为此我尝试创建一个过滤器“translate”,该过滤器将调用现有的translate方法并返回其值。我相信,在

我目前正在尝试学习如何使用Angular,我的任务是重写现有的功能页面以使用Angular

我们的核心功能之一在于使用JavaScript函数翻译字符串,但是,这个翻译方法只应该在翻译字符串加载到脚本中之后调用,并且加载是异步完成的

我们目前使用回调来实现这种行为,但由于角度的性质(至少在我的理解中),我的数据在呈现页面时立即显示

我有需要翻译的字符串,但我想在表中显示翻译后的字符串,为此我尝试创建一个过滤器“translate”,该过滤器将调用现有的translate方法并返回其值。我相信,在调用过滤器的那一刻,我仍然没有翻译字符串,因为它们可能还没有被加载

我所期望的是类似{object.name | translate}的东西,其中object.name是一个待翻译字符串,如“access.grated”,为给定语言提供相应的翻译字符串,例如“您被授予访问此区域的权限”

我不确定这是实现我想要的最好的方式,我还没有太多时间深入研究angular,但我的一个要求是,我不能改变处理翻译的方式,因为我们有一个巨大的系统已经在使用该代码,使用angular的新页面必须完全兼容

我尝试过的:(我当前的筛选代码)

我试图在这里实现的是验证翻译字符串是否已经加载,如果没有,请在短时间内重试,但即使在加载翻译字符串后,表上也没有显示任何内容

这是我的表格代码:

<tr data-ng-repeat="product in productList">
    <td>{{ product.name | translate }}</td>
</tr>

{{product.name | translate}}

提前非常感谢

好吧,我能想到的一种方法是引导模块,加载字符串,然后在回调函数中手动启动angular应用程序

使用此功能手动启动角度应用程序


这样,您可以确保在初始化应用程序之前加载所有翻译字符串。

好的,非常感谢!我还没有尝试过这样做,但这正是我现在正在寻找的。我试图通过一些更奇怪、更黑暗的手段来实现这一点。在回调中加载angular js和my module js以及ajax。我更喜欢你的方式。我想你不需要超时。只需使用
{{product.name | translate}}
翻译字符串即可。当
product.name
更改时,翻译将自动更新为anks,但product.name不应更改,它是服务器发送的json,不可编辑,应选中或取消选中产品。不过,这可能是我的下一个问题
<tr data-ng-repeat="product in productList">
    <td>{{ product.name | translate }}</td>
</tr>