[Vue警告]:v-on处理程序中的错误:“ ReferenceError:未定义qs”

时间:2019-04-15 11:50:14

标签: vue.js axios

我正在尝试使用qs在HTML中将数据字符串化。 我的脚本导入如下:

<script src="{% static 'main/axios.min.js'%}"></script>
<script src="https://cdn.bootcss.com/qs/6.7.0/qs.js"></script>
<script src="{% static 'main/vue.js'%}"></script>

和我的html正文是这样的:

<body>
<div id="ele">
    <button v-on:click="test">testApi</button>
</div>

<script>
    var api = new Vue({
        delimiters:['${','}'],
        el: "#ele",
        methods:{
            test:function(event){
                alert("testApi")
                data = qs.stringfy({"msg":"test",'status':"started"})
                axios.post('testApi',data)
                .then(response=>{
                    alert("getData!")
                })
            }
        }
    })
</script>
</body>

但是该按钮未按预期运行。在我的Chrome控制台中,我得到以下信息: error

它说qs尚未定义,但实际上我有脚本。你能告诉我如何解决吗?

1 个答案:

答案 0 :(得分:0)

请注意,此cdnjs使用Q而不是Qs。

尝试一下。

// Get all products
app.get('/products', function(req, res) {
  Product.find({})
    .exec()
    .then(products => res.render('products.ejs', {allProducts: products}))
    .catch(err => res.json({errors: err}));
});

// Order a product
app.get('/products/:productId/order', function(req, res) {
  req.user = {id: ""} /* id of the client, or the logged in user if you're using passeport or some other auth manager */
  Client.findOne({_id: req.user.id})
    .exec()
    .then(client => {
      if(client.order) {
        return addToOrder(client.id, req.params.productId)
          .then(order => res.render('cart.ejs', {order: order}))// render cart with the order
      } else {
        return createOrder(client.id, req.params.productId)
          .then(order => res.json('cart.ejs', {order: order}))
      }
    })
    .catch(err => res.json({errors: err}));
})