我试图让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>
非常感谢您的帮助!
答案 0 :(得分:4)
您需要定义属性&#34; model&#34;在你指定&#34; spiff&#34;它。你可以用两种方式做到这一点:
$scope.model = {};
//OR:
$scope.model = {
spiffs: []
};
&#13;
答案 1 :(得分:1)
您正在编写$ scope.model.spiffs。这里的模型是未定义的,因此是错误。
TypeError:无法读取未定义的属性'spiffs'
首先需要初始化$ scope.model,就像这样
$ scope.model = {}
由于$ scope.model未定义,因此您可以添加属性。
希望它有所帮助。