我在使用Angular和Laravel的foreach循环时遇到问题,我试图尽可能详细:)
// Use it like: \App\Company::search($request->all())->paginate(20);
public function scopeSearch($q, $filters)
{
$sortBy = isset($filters['sortby']) ? $filters['sortby'] : 'created_at';
$orderBy = isset($filters['orderby']) ? $filters['orderby'] : 'desc';
return $q->where(function ($q) use ($filters) {
$q->whereHas('addresses', function ($q) use ($filters) {
$q->where('address_line_1', "LIKE", '%'.$filters['name'].'%')
->orWhere('address_line_2', "LIKE", '%'.$filters['name'].'%')
->orWhere('city', "LIKE", '%'.$filters['name'].'%')
->orWhere('county', "LIKE", '%'.$filters['name'].'%')
->orWhere('post_code', "LIKE", '%'.$filters['name'].'%');
})
->orWhereHas('digits', function ($q) use ($filters) {
$q->where('number', "LIKE", '%'.$filters['name'].'%')
->orWhere('extension', "LIKE", '%'.$filters['name'].'%');
});
})
->with(['addresses', 'digits'])
->orderBy('companies.'.$sortby, $orderby)
->select(['id', 'registered_name', 'trading_name', 'created_at', 'type']);
}
这是我的foreach循环
@foreach($ products as $ product)
{{$ product-> product_description}}
product_price}}" NG-模型="价格">
@ {{价格*数量}}
@endforeach
问题:
- 当我使用" ng-model"价格/数量不会显示,但是当我使用" ng-bind"显示价格/数量,但小计列显示NaN(我不知道为什么)。
流速:
- 该表的每一行显示杂货项目列表,当单击该复选框时,表示该项目已被选中并转移到另一个表格以计算该总计。
参考: https://ibb.co/hCddLv(从食品清单中扣除) https://ibb.co/e0jk0v(当转移该产品时,会发生这种情况) *我正在使用" ng-bind"显示价格和数量...
先谢谢你的回答......
我已经用laravel中的控制器代码更新了这个
public function create() {
$ rooms = Room :: where(&#39; status&#39;,&#39; =&#39;,0) - &gt; orderBy(&#39; room_length_of_stay&#39;) - &gt; get();<div style="padding:15px;" id="table-scroll" ng-app> <table class="table table-responsive tblProducts" id="tblProducts"> <thead> <tr> <th>Description</th> <th>Prices</th> <th></th> <th></th> <th>Action</th> </tr> </thead> <tbody> //foreach loop here </tbody> </table> </div>
答案 0 :(得分:1)
ng-model
通过使用作用域上的属性来读取/写入值作为输入更改,因此您不能只为它分配一些值因此问题。理想情况下,我只使用Angular进行前端和模板处理,并使用ng-repeat在JS中从后端检索到的数组进行循环(可能是基于laravel的,但会保留它只是提供JSON数据而不执行任何操作视图,流明对此有好处)。在短期内,您可以在输入上设置value属性,这将是将数据放入可能不适用于ng-model的表单的最直接方式(假设您指向某个JS属性),因为它是预期的ng-model将用于读/写值。
答案 1 :(得分:0)
不使用刀片中的foreach而是使用ng-repeat指令。在json中获取foreach中的数据并在模板中迭代它。
在渲染角度控制器之前制作一个脚本:
<script>
var products = "{{ json_encode($products) }}";
</script>
然后在控制器中将其存储为:
$scope.products = products;
然后迭代它:
<p ng-repeat="product in products">
@{{ product.product_description }}
@{{ product.price*product.qty}}
</p>