AngularJS在模板中使用orderBy ng-repeat值的全局变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AngularJS在模板中使用orderBy ng-repeat值的全局变量相关的知识,希望对你有一定的参考价值。
我正在开发一个角度应用程序,我无法访问组件html代码的应用程序源。我想用自定义函数重新排序数组,但我不确定是否可以访问模板中的全局变量。
这适用于按“name”属性的值对字段进行排序。
<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文件,只能访问组件的html。如何在模板中对数组进行排序的解决方案也将解决此问题。
答案
你可以使用ng-init在html中添加一些变量:
<body ng-controller="MainCtrl as ctrl" ng-init="orderByProperty = 'name'">
<div ng-repeat="$field in $fields | orderBy:orderByProperty track by $field.name ">
<input ng-model="$field.name" />
</div>
</body>
另一答案
如何从angular [JS]模板中访问全局变量?
你不能。
来自Docs:
AngularJS表达式与javascript表达式类似,但有以下区别:
- 上下文:JavaScript表达式是针对全局窗口进行评估的。在AngularJS中,表达式是针对范围对象进行计算的。
有关更多信息,请参阅
以上是关于AngularJS在模板中使用orderBy ng-repeat值的全局变量的主要内容,如果未能解决你的问题,请参考以下文章
AngularJS 使用 ng-view 在 ng-repeat 中渲染不同的模板