AngularJS使用ng-init return中的项目



在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) {
....
}

相关内容

最新更新