在AngularJS中是否有可能从ng-init返回一些东西,即ng-repeat内部,然后对结果进行ng-repeat?例如,如果我有
<ng-repeat="c in customers">
<div ng-init="getItems(c)">
{{object returned from getItems(c)}}
</div>
</div>
如何访问从 getItems(c( 返回的 JSON 对象?
您可以通过多种方式执行此操作,但我不会为此使用ng-init
。ng-init 文档页面说:
ngInit 只有几种适当的用途:别名特殊 ngRepeat的属性,如下面的演示所示。初始化数据 在开发过程中,或例如示例,如这些文档所示。 通过服务器端脚本注入数据。除了这几个案例,你 应该使用组件或控制器而不是 ngInit 来初始化 作用域上的值。
你可以简单地选择:ng-repeat="c in customers.map(cust => getItems(cust))"
我强烈建议像其他人一样在您的控制器中执行此操作。但是,如果您真的想继续使用当前的方法,则可以尝试以下方法。
<div ng-repeat="c in customers">
<div ng-init="c.items = getItems(c)">
{{c.items}}
</div>
</div>
可以直接绑定函数而无需使用 ng-init
<ng-repeat="c in customers">
<div>
{{getItems(c)}}
</div>
</div>
在控制器中
$scope.getItems = function(customer) {
....
}