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

AngularJS 和 Laravel - CORS

使用 IIS、AngularJS 和 Laravel 删除 MethodNotAllowedHttpException

使用 Laravel 5.3 和 AngularJS 1.5 的路线行为不端

使用 Laravel、JWT 和 Angularjs 批处理令牌

AngularJS 和 Laravel Foreach