【郑州校区】品优购电商系统开发 第 6 章 四
4.2.2 保存选中规格选项
我们需要将用户选中的选项保存在 tb_goods_desc 表的 specification_items 字段中,定义 json
格式如下:
[AppleScript] 纯文本查看 复制代码 [{“attributeName”:”规格名称”,”attributeValue”:[“规格选项 1”,“规格选项 2”.... ] } , .... ]
(1)在 baseController.js 增加代码
[AppleScript] 纯文本查看 复制代码 //从集合中按照 key 查询对象
$scope.searchObjectByKey=function(list,key,keyValue){
for(var i=0;i<list.length;i++){
if(list[i][key]==keyValue){
return list[i];
}
}
return null;
}
(2)在 goodsController.js 增加代码
[AppleScript] 纯文本查看 复制代码 $scope.entity={ goodsDesc:{itemImages:[],specificationItems:[]} };
$scope.updateSpecAttribute=function($event,name,value){
var object= $scope.searchObjectByKey(
$scope.entity.goodsDesc.specificationItems ,'attributeName', name);
if(object!=null){
if($event.target.checked ){
object.attributeValue.push(value);
}else{//取消勾选
object.attributeValue.splice( object.attributeValue.indexOf(value ) ,1);//移除选
项
//如果选项都取消了,将此条记录移除
if(object.attributeValue.length==0){
$scope.entity.goodsDesc.specificationItems.splice(
$scope.entity.goodsDesc.specificationItems.indexOf(object),1);
}
}
}else{
$scope.entity.goodsDesc.specificationItems.push(
{"attributeName":name,"attributeValue":[value]});
}
}
(3)在 goods_edit.html 调用方法
[AppleScript] 纯文本查看 复制代码 <div ng-repeat="pojo in specList">
<div class="col-md-2 title">{{pojo.text}}</div>
<div class="col-md-10 data">
<span ng-repeat="option in pojo.options">
<input type="checkbox"
ng-click="updateSpecAttribute($event,pojo.text,option.optionName)">{{option.optionN
ame}}
</span>
</div>
</div>
为了方便测试,我们可以在页面上某个区域临时添加表达式,以便观测测试结果
[AppleScript] 纯文本查看 复制代码 {{entity.goodsDesc.specificationItems}}
|
|