AngularJS 和 Laravel Foreach
Posted
技术标签:
【中文标题】AngularJS 和 Laravel Foreach【英文标题】:AngularJS and Laravel Foreach 【发布时间】:2017-11-05 12:31:12 【问题描述】:我在使用 Angular 和 Laravel 的 foreach 循环时确实遇到了问题,我试图尽可能详细:)
<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>
这是我的 foreach 循环
@foreach($products 作为 $product) $product->product_description product_price " ng-model="price"> @价格*数量 @endforeach
问题:
-当我使用“ng-model”时,不显示价格/数量,但是当我使用“ng-bind”时,显示价格/数量,但小计列显示 NaN(我不知道为什么)。
流程:
-该表的每一行显示一个杂货项目列表,当单击该复选框时,表示该项目被选中并转移到另一个表以计算总计。
参考: https://ibb.co/hCddLv(从杂货清单中截取) https://ibb.co/e0jk0v(当该产品被转移时,会发生这种情况) *我使用“ng-bind”来显示价格和数量...
谢谢大家提前回答...
我已经用 laravel 中的控制器代码更新了这个
公共函数 create() $rooms = Room::where('status','=',0)->orderBy('room_length_of_stay')->get();
$products = DB::table('classifications') ->join('products', 'classifications.id', '=', 'products.classification_id') ->select('classifications.*', 'products.*') ->get(); //$scope.products = $products; return View::make('frontdesk.transactions.create', ['rooms' => $rooms, 'products'=>$products]);
【问题讨论】:
【参考方案1】:ng-model
通过使用范围上的属性在输入更改时读取/写入值来工作,因此您不能只为其分配一些值,因此会出现问题。理想情况下,我只将 Angular 用于前端和模板处理,并且会使用 ng-repeat 对从后端在 JS 中检索到的数组进行循环(可以基于 laravel,但会保持它只提供 JSON 数据而不做任何事情)观点,流明对此有好处)。在短期内,您可以在输入上设置 value 属性,这是将数据放入可能无法与 ng-model 一起使用的表单的最直接方法(假设您在某些 JS 属性中指出),因为这是预期的ng-model 将用于读取/写入值。
【讨论】:
【参考方案2】:不要在刀片中使用 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>
【讨论】:
"$scope.products = $products;"在我的 Laravel 控制器中以错误结束, 删除范围分配中的 $。看看我是怎么写的 view table - 这是我合并数据的表格(已更新) 尝试在控制器文件之外分配产品变量。在调用控制器文件之前在视图中执行此操作。在json编码之前做一个控制台日志,看看变量有没有内容 当我尝试将其放入控制台时显示未定义,我在另一个视图中尝试但没有数据以上是关于AngularJS 和 Laravel Foreach的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 4 和 AngularJS - 使用路由清理 URL
使用 IIS、AngularJS 和 Laravel 删除 MethodNotAllowedHttpException
使用 Laravel 5.3 和 AngularJS 1.5 的路线行为不端