Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdn.bootcss.com/axios/0.17.1/axios.min.js"></script>
  <title>JS Bin</title>
</head>
<body>
  <div id="app">
    
  </div>
  <div id="status"></div>
</body>
</html>
 
axios.interceptors.response.use(function (response) {
  let {config: {url, method, data}} = response
  data = JSON.parse(data||'{}')
  let row = {
    id: 1, name: 'JavaScript高级程序设计', number: 2
  }
  if(url === '/books/1' && method === 'get'){
    response.data = row
  }else if(url === '/books/1' && method === 'put'){
    response.data = Object.assign(row, data)
  }
  return response
})
function fetchDb() {
  return axios.get('/books/1')
}
function saveDb(newData) {
  return axios.put('/books/1', newData)
}
var template = `
<div>
  书名:《__name__》,
  数量:<span id="number">__number__</span>
</div>
<div class="actions">
  <button id="increaseByOne">加1</button>
  <button id="decreaseByOne">减1</button>
  <button id="square">平方</button>
  <button id="cube">立方</button>
  <button id="reset">归零</button>
</div>
`
fetchDb().then((response) => {
  let result = response.data
  $('#app').html(
    template.replace('__number__', result.number)
      .replace('__name__', result.name)
  )
  //加1
  $('#increaseByOne').on('click', (e) => {
    let oldResult = parseInt($('#number').text(), 10)
    let newResult = oldResult + 1
    saveDb({number: newResult}).then(function({data}) {
      console.log(data)
      $('#number').text(data.number)
    })
  })
  //减1
  $('#decreaseByOne').on('click', (e) => {
    let oldResult = parseInt($('#number').text(), 10)
    let newResult = oldResult - 1
    saveDb({number: newResult}).then(({data}) => {
      $('#number').text(data.number)
    })
  })
  //平方
  $('#square').on('click', (e) => {
    let oldResult = parseInt($('#number').text(), 10)
    let newResult = Math.pow(oldResult, 2)
    saveDb({number: newResult}).then(({data}) => {
      $('#number').text(data.number)
    })
  })
  //立方
  $('#cube').on('click', (e) => {
    let oldResult = parseInt($('#number').text(), 10)
    let newResult = Math.pow(oldResult, 3)
    saveDb({number: newResult}).then(({data}) => {
      $('#number').text(data.number)
    })
  })
  //归零
  $('#reset').on('click', (e) => {
    let newResult = 0
    saveDb({number: newResult}).then(({data}) => {
      $('#number').text(data.number)
    })
  })
})
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
FrankFangpro
0viewers