提问者:小点点

AngularJS和Laravel Foreach


我在使用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 as$product)

{{{$product-

问题:

-当我使用“ng模型”时,不会显示价格/数量,但当我使用“ng绑定”时,会显示价格/数量,但小计列会显示NaN(我不知道为什么)。

流量:

-该表的每一行都显示一个杂货项目列表,当单击该复选框时,这意味着该项目已被选中并转移到另一个表中以计算总金额。

参考:https://ibb.co/hCddLv(从杂货项目列表中捕捉)https://ibb.co/e0jk0v(当该产品转移时,会发生这种情况)*我使用“ng bind”显示价格和数量。。。

提前谢谢你的回答伙计们。。。

我已经更新了这个与我的控制器代码在laravel

公共函数创建(){
$房间=房间::其中('状态','=',0)-

    $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]);
}

共2个答案

匿名用户

ng-model的工作原理是使用作用域上的属性来读取/写入一个值,因为输入发生了变化,所以您不能只是给它分配一些值,因此出现了问题。理想情况下,我只使用Angular用于前端和模板处理,并且会在从后端检索的JS中的数组上使用ng重复进行循环(可以是基于laravel的,但会保持它只服务JSON数据,而不对视图做任何操作,流明对此有好处)。在短期内,您可以在输入上设置value属性,这将是最直接的方式将您的数据放入可能不适用于ng模型的表单中(假设您指出了一些JS属性),因为它预计会出现ng-模型将用于读取/写入该值。

匿名用户

不要在刀片中使用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>