我正在将纯Laravel(和jQuery)应用程序转换为Angular / Laravel。
我有这个片段:
<td>{{ Person::byId($record->id) }}</td>
在我的迭代中,我调用了一个函数来根据迭代中的id获取名称。我知道我需要使用过滤器在Angular中执行此操作。
如果我设置了API端点来接收ID并使用名称进行响应,那么如何设置下面的表以使用该过滤器?
<tr ng-repeat="record in records">
<td>{{record.id | filter to show name}}</td>
</tr>
答案 0 :(得分:0)
您可以从:
开始angular.module('myModule', []).filter('name', function() {
return function(input) {
//function/call a service to get the name based on record.id which is the input
return name;
};
});
然后在你看来:
<tr ng-repeat="record in records">
<td>{{record.id | name}}</td>
</tr>
请注意,如果您的数据库上有几条记录,那么它可能会被循环请求所淹没。
答案 1 :(得分:0)
这一切都没有Angular,尽管它被标记为Angular问题。它可以在服务器端或客户端完成,但我在服务器端完成,因为它更容易这样做。
这是我的Laravel查询:
$records = DB::table('records')->get();
获得此stdClass array
后,我迭代它并使用外部静态方法返回基于id的名称。
示例:
foreach($records as $record) {
$record->id = Person::byId($record->id);
}
然后我使用上面修改过的数据在我的API端点中使用JSON进行响应。