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 中渲染不同的模板

走进AngularJs ng模板中常用指令的使用方式

angularjs 1 如何在ng-route的模板中使用script标签

走进AngularJs ng模板中常用指令的使用方式

走进AngularJs ng模板中常用指令的使用方式

走进AngularJs ng模板中常用指令的使用方式