电商四十五、增加和删除扩展属性行

①新增和删除扩展属性和电商三十七新增规格选项差不多。只不过不用保存到两张表中,只用保存到一张表中。

和之前的电商三十七新增规格选项代码差不多。

电商三十七的新增规格选项保存到数据库的tb_specification_option(规格选项表)表中,而不是保存到tb_specification(规格表)表中,即保存到第二张表中。

而新增扩展属性,是保存到同样一张表中。同样保存到tb_type_template表中。

②增加扩展属性行。先写前端代码。写前端的控制层(controller层)。写在typeTemplateController.js文件中。

 

哪里定义了$scope.entity呢?我们分析一下:在typeTemplateController.js文件中定义了:

$scope.findOne函数在哪里调用呢?

文件type_template.html中调用:

然后是$event.target.parentNode.parentNode.children[1].innerText,这个值就是{{entity.id}}的值。

$scope.entity03= {id: $event.target.parentNode.parentNode.children[1].innerText}

循环的entity(不是全局变量$scope.entity的值)id的值,封装在全局变量$scope.entity03中,且$scope.entity03是一个对象,对象内有属性值id。这个id的值为:循环的entity(不是全局变量$scope.entity的值)id的值。

 

然后是typeTemplateService.findOne($scope.entity03).success(
                        function(response){
                            $scope.entity = response;
                        }
                    );

typeTemplateService.findOne($scope.entity03)..............

在typeTemplateService.js文件中:

$http.post("../typeTemplate/findOne.do",entity09);

相当于:$http.post("../typeTemplate/findOne.do",$scope.entity03);

开始与后端代码交互。

第一步:开始与后端代码控制层(controller层)交互:与TypeTemplateController.java交互

$http.post("../typeTemplate/findOne.do",entity09);中的/typeTemplate与上面的@RequestMapping("/typeTemplate")相对应。

$http.post("../typeTemplate/findOne.do",entity09);中的/findOne与上面的@RequestMapping("/findOne")相对应。

最后findOne函数返回的是TbTypeTemplate.java类对应的对象

typeTemplateService.findOne($scope.entity03).success(
                        function(response){
                            $scope.entity = response;
                        }
                    );

返回的TbTypeTemplate.java类对应的对象就是response的值。只不过是json形式的。

 

$scope.entity=response的json格式是:{"id":   ,    "name":"  ",      "specIds":"  ",       "brandIds":"  ",    "customAttributeItems":"  "};因为数据库:

 数据库idbigint类型,则对应javaLong类型。

数据库namespec_idsbrand_idscustom_attribute_itemsvarchar类型,则对应javaString类型。而不是数组/集合(List)类型

如:entityjson格式是:{"id":37,"name":"电视","specIds":"[{"id":33,"text":"电视屏幕尺寸"}]","brandIds":"[{"id":16,"text":"TCL"},{"id":13,"text":"长虹"},{"id":14,"text":"海尔"},{"id":19,"text":"创维"},{"id":21,"text":"康佳"},{"id":18,"text":"夏普"},{"id":17,"text":"海信"},{"id":20,"text":"东芝"},{"id":15,"text":"飞利浦"},{"id":22,"text":"LG"}]",    "customAttributeItems":"[{"text":"内存大小"},{"text":"颜色"}]"}

则在angularjs中得到数据:

entity.identity.nameentity.specIds、entity.brandIds、entity.customAttributeItems。不用entity."id"、entity."name"..............不用像json标准格式一样打双引号。而且在赋值的时候,如:entity.customAttributeItems=[  ],也不用打双引号。不用:entity.customAttributeItems="[  ]"json标准格式keyString类型value都要打双引号。不是标准的json格式可以打单引号。angularjs取值赋值的时候都不用打双引号,无论是key值,还是String类型value值,都不用打双引号,直接点某某某即可。如:entity.brandIds=[ { },{ }........],而不用:entity."brandIds"="[{  },{  }.........]"。

③增加扩展属性行。在type_template.html文件中的新建按钮,执行实体$scope.entity.customAttributeItems的初始化操作。

只用初始化customAttributeItems这一个。$scope.entity用到哪一个,初始化哪一个。

④增加扩展属性行。在type_template.html文件中,修改“新增扩展属性”按钮,调用$scope.addTableRow方法。并且在扩展属性的表格中用ng-model绑定数据。

⑤删除删除扩展属性行。先写前端代码。写前端的控制层(controller层)。写在typeTemplateController.js文件中。

 

 

测试:http://localhost:9101/admin/type_template.html 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值