首页 > 解决方案 > AngularJS 在模板中为 orderBy ng-repeat 值使用全局变量

问题描述

我正在开发一个角度应用程序,我无法访问应用程序的源代码,只能访问组件 html 代码。我想使用自定义函数重新排序数组,但我不确定是否可以访问模板中的全局变量。

这有效并按“名称”属性的值对字段进行排序。

<div ng-repeat="$field in $fields | orderBy:'name' track by $field.name " >
   <input ng-model="$item[$field.name] " />
</div>

如果我尝试这个,这将不起作用

不行

<script>var orderByProperty = 'name'; </script>
<div ng-repeat="$field in $fields | orderBy:orderByProperty track by $field.name " >
   <input ng-model="$item[$field.name] " />
</div>

如何从角度模板中访问全局变量?

我无权访问应用程序的控制器代码或应用程序的主 js 文件,只能访问 component 的 html。如何在模板中对数组进行排序的解决方案也将解决此问题。

标签: angularjsangularjs-ng-repeatangularjs-orderby

解决方案


如何从 angular[JS] 模板中访问全局变量?

你不能。

从文档:

AngularJS 表达式类似于 JavaScript 表达式,但有以下区别:

  • 上下文: JavaScript 表达式针对全局窗口进行评估。在 AngularJS 中,表达式是针对范围对象进行评估的。

有关详细信息,请参阅


推荐阅读