案例改进

vue-resource全局配置:

Vue.http.options.root = 'http://vue.studyit.io/';

全局启用 emulateJSON 选项

Vue.http.options.emulateJSON = true;

  1. <div id="app">
  2. <div class="panel panel-primary">
  3. <div class="panel-heading">
  4. <h3 class="panel-title">添加品牌</h3>
  5. </div>
  6. <div class="panel-body form-inline">
  7. <label>
  8. Name:
  9. <input type="text" v-model="name" class="form-control">
  10. </label>
  11. <input type="button" value="添加" @click="add" class="btn btn-primary">
  12. </div>
  13. </div>
  14. <table class="table table-bordered table-hover table-striped">
  15. <thead>
  16. <tr>
  17. <th>Id</th>
  18. <th>Name</th>
  19. <th>Ctime</th>
  20. <th>Operation</th>
  21. </tr>
  22. </thead>
  23. <tbody>
  24. <tr v-for="item in list" :key="item.id">
  25. <td>{{item.id}}</td>
  26. <td>{{item.name}}</td>
  27. <td>{{item.ctime}}</td>
  28. <td>
  29. <a href="" @click.prevent="del(item.id)">删除</a>
  30. </td>
  31. </tr>
  32. </tbody>
  33. </table>
  1. // 如果我们通过全局配置了,请求的数据接口 根域名,则 ,在每次单独发起 http 请求的时候,请求的 url 路径,应该以相对路径开头,前面不能带 / ,否则 不会启用根路径做拼接;
  2. Vue.http.options.root = 'http://vue.studyit.io/';
  3. // 全局启用 emulateJSON 选项
  4. Vue.http.options.emulateJSON = true;
  5. // 创建 Vue 实例,得到 ViewModel
  6. var vm = new Vue({
  7. el: '#app',
  8. data: {
  9. name: '',
  10. list: [ // 存放所有品牌列表的数组
  11. ]
  12. },
  13. created() { // 当 vm 实例 的 data 和 methods 初始化完毕后,vm实例会自动执行created 这个生命周期函数
  14. this.getAllList()
  15. },
  16. methods: {
  17. getAllList() { // 获取所有的品牌列表
  18. // 分析:
  19. // 1. 由于已经导入了 Vue-resource这个包,所以 ,可以直接通过 this.$http 来发起数据请求
  20. // 2. 根据接口API文档,知道,获取列表的时候,应该发起一个 get 请求
  21. // 3. this.$http.get('url').then(function(result){})
  22. // 4. 当通过 then 指定回调函数之后,在回调函数中,可以拿到数据服务器返回的 result
  23. // 5. 先判断 result.status 是否等于0,如果等于0,就成功了,可以 把 result.message 赋值给 this.list ; 如果不等于0,可以弹框提醒,获取数据失败!
  24. this.$http.get('api/getprodlist').then(result => {
  25. // 注意: 通过 $http 获取到的数据,都在 result.body 中放着
  26. var result = result.body
  27. if (result.status === 0) {
  28. // 成功了
  29. this.list = result.message
  30. } else {
  31. // 失败了
  32. alert('获取数据失败!')
  33. }
  34. })
  35. },
  36. add() { // 添加品牌列表到后台服务器
  37. // 分析:
  38. // 1. 听过查看 数据API接口,发现,要发送一个 Post 请求, this.$http.post
  39. // 2. this.$http.post() 中接收三个参数:
  40. // 2.1 第一个参数: 要请求的URL地址
  41. // 2.2 第二个参数: 要提交给服务器的数据 ,要以对象形式提交给服务器 { name: this.name }
  42. // 3.3 第三个参数: 是一个配置对象,要以哪种表单数据类型提交过去, { emulateJSON: true }, 以普通表单格式,将数据提交给服务器 application/x-www-form-urlencoded
  43. // 3. 在 post 方法中,使用 .then 来设置成功的回调函数,如果想要拿到成功的结果,需要 result.body
  44. /* this.$http.post('api/addproduct', { name: this.name }, { emulateJSON: true }).then(result => {
  45. if (result.body.status === 0) {
  46. // 成功了!
  47. // 添加完成后,只需要手动,再调用一下 getAllList 就能刷新品牌列表了
  48. this.getAllList()
  49. // 清空 name
  50. this.name = ''
  51. } else {
  52. // 失败了
  53. alert('添加失败!')
  54. }
  55. }) */
  56. this.$http.post('api/addproduct', { name: this.name }).then(result => {
  57. if (result.body.status === 0) {
  58. // 成功了!
  59. // 添加完成后,只需要手动,再调用一下 getAllList 就能刷新品牌列表了
  60. this.getAllList()
  61. // 清空 name
  62. this.name = ''
  63. } else {
  64. // 失败了
  65. alert('添加失败!')
  66. }
  67. })
  68. },
  69. del(id) { // 删除品牌
  70. this.$http.get('api/delproduct/' + id).then(result => {
  71. if (result.body.status === 0) {
  72. // 删除成功
  73. this.getAllList()
  74. } else {
  75. alert('删除失败!')
  76. }
  77. })
  78. }
  79. }
  80. });

vue-商品管理案例改进的更多相关文章

  1. Vue小案例 之 商品管理------学习过滤器 使用过滤器处理日期的格式

    代码学习过滤器 过滤器介绍:过滤模型数据,在数据显示前做预处理操作: 内置过滤器:在1.x中,Vue提供了内置过滤器,但是在2.x中已经完全废除: 解决办法: (1)使用第三方库来替代1.x中的内置过 ...

  2. Vue小案例 之 商品管理------修改商品数量以及增加入库日期属性

    实现修改商品的数量: 加入的代码: css: .clear-btn{ text-align: right; padding-right: 10px; } .table-warp a{ text-dec ...

  3. Vue小案例 之 商品管理------批量删除与商品数量的调整

    通过索引进行删除,进行测试,是否获取其索引: 测试效果: 测试代码,在vue中定义一个空的数组,以便后面进行数据的绑定: data:{ imgUrl:'../res/images/', imgName ...

  4. Vue小案例 之 商品管理------删除商品与提示

    实现删除商品功能 根据索引来进行删除商品: 实现删除商品的HTML: <!--显示表格--> <div class="table-warp"> <di ...

  5. Vue小案例 之 商品管理------为之前的页面修改样式

    最终修改的页面效果: 修改的css: <style> #container{ margin: auto; text-align: center; width: 1000px; border ...

  6. Vue小案例 之 商品管理------添加商品

    进行添加button,以及商品列表的创建 html: <div class="form-btn"> <button>确认添加</button> ...

  7. Vue小案例 之 商品管理------创建页面与部分数据

    logo的路径: 页面的初始布局: 初始的HTML: <div id="container"> <!--logo title--> <div clas ...

  8. Vue_(基础)商品管理-demo

    实现对商品的增加.删除.数量的修改功能 删除商品可选择直接删除当前商品.删除选中商品.删除所有商品 添加商品时会自动添加日期字段 商品的属性 goods : { id : '', name : '', ...

  9. java 用集合完成随机点名器和库存管理案例

    一 随机点名器 1.案例需求 随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息. 我们来完成随机点名器,它具备以下3个内容: 存储所有同学姓名 总览全班同学姓名 随机点名其中一人, ...

随机推荐

  1. Jmeter正则提取请求响应数据

    前言 在测试时,我们经常需处理请求返回的响应数据,比如很多时候 cookie 或 token 或 Authorization授权码 会返回在 Response headers(响应头)中,这时我们便需 ...

  2. Python 词云可视化

    最近看到不少公众号都有一些词云图,于是想学习一下使用Python生成可视化的词云,上B站搜索教程的时候,发现了一位UP讲的很不错,UP也给出了GitHub上的源码,是一个很不错的教程,这篇博客主要就是 ...

  3. sql server 2014 卸载

    遇到一个沙雕工程人员~二话不装给我装了2014的版本,实际开发的时候用的是2012....欸~ 1.打开服务 2.打开控制面板下的程序与功能 3选中红框点击卸载与更改----->选择删除 4.然 ...

  4. (转)RocketMQ工作原理

    原文:https://blog.csdn.net/lyly4413/article/details/80838716 1.消息中间件的发展: 第一代以ActiveMQ为代表,遵循JMS(java消息服 ...

  5. Implement Dependent Reference Properties 实现从属引用属性 (XPO)

    In this lesson, you will learn how to implement properties whose values can depend on other properti ...

  6. PHP stat 文件系统函数

    定义和用法 stat - 给出文件的信息 版本支持 PHP4 PHP5 PHP7 支持 支持 支持 语法 stat ( string $filename ) 获取由 filename 指定的文件的统计 ...

  7. [browser window窗口大小 算是screen补充吧]主要因为移动IE游览器 写了个兼容

    先上图吧 来上代码 console.log(window.outerWidth + '--' + window.outerHeight);//只读的整数,声明了整个窗口的XY //IE 不支持此属性, ...

  8. ES6-数字操作,判断是否是整数,判断最大值最小值

    S中只有一种类型数,即64位(1bit 的符号位,11bits 的指数部分 ,以及52bits 的小数部分)双精度浮点数,当整数数值过大时,就会发生精度丢失. 所谓安全整数即能够唯一确定的数字,即能够 ...

  9. PHP 7.0 7.3 (Unix) - 'gc' Disable Functions Bypass

    <?php # PHP 7.0-7.3 disable_functions bypass PoC (*nix only) # # Bug: https://bugs.php.net/bug.ph ...

  10. [转]Paste from Excel into C# app, retaining full precision

    本文转自:https://stackoverflow.com/questions/8614910/paste-from-excel-into-c-sharp-app-retaining-full-pr ...