TypeError:无法读取ng-repeat的undefined属性

时间:2016-02-29 10:30:28

标签: javascript angularjs ng-repeat

我试图让ng-repeat在收据中重复一个项目列表,spiffs。我有这个工作的编辑功能,但我无法使添加页面工作,因为它显示:

TypeError: Cannot read property 'spiffs' of undefined

以下是导致它的代码:

$scope.model.spiffs = [];
$scope.model.spiffs = [{ spiff_id: 0, receipt_id: 0, product_id: 0, spiff_amt:0, quantity: 1, active: true, note: null }];

起初它是第二行,但我想我会尝试让$ scope.model成为一个空数组来尝试提前声明数组,我尝试了不同的变体,我想我&#39我只是缺少一些简单的东西。当我没有任何初始输入来填充它时,我需要做什么才能将表单设置为ng-repeat一组字段?之后,我是否可以通过简单的$scope.model调用获取所有表单数据并将其发送到我的API?

这是希望受到影响的HTML:

<div class="col-xs-10 col-xs-offset-2" ng-repeat="item in model.spiffs">

  <div ng-hide="item.active === false">
   <div class="col-xs-4 form-group">
        <select name="productID"  ng-model="item.product_id" required="" ng-change="changeSpiffProduct($index)" class="form-control"
        ng-options="product.product_id as product.model_number + ' ' + product.name for product in products">
        </select>
    </div>


    <div class="col-xs-2 form-group">
          <input name="spiff_sale_price" type="text" placeholder="" ng-model="item.quantity" class="form-control input-md">
    </div>

    <div class="col-xs-2 form-group">
          <p name="spiff_amt" class="form-control-static">{{item.spiff_amt | currency: "$"}}</p>
    </div>

    <div class="col-xs-2 form-group">
          <p name="spiff_total" class="form-control-static">{{item.spiff_amt * item.quantity | currency: "$"}}</p>
    </div>

    <div class="col-xs-2 form-group">
      <button class="btn btn-danger" novalidate ng-click="removeSpiff($index)"><i class="fa fa-minus"></i></button>
    </div>

  </div>

</div>

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

您需要定义属性&#34; model&#34;在你指定&#34; spiff&#34;它。你可以用两种方式做到这一点:

&#13;
&#13;
$scope.model = {};

//OR:

$scope.model = {
  spiffs: []
};
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您正在编写$ scope.model.spiffs。这里的模型是未定义的,因此是错误。

  

TypeError:无法读取未定义的属性'spiffs'

首先需要初始化$ scope.model,就像这样

  

$ scope.model = {}

由于$ scope.model未定义,因此您可以添加属性。

希望它有所帮助。