Vue选择使用getJSON

时间:2018-10-23 16:59:05

标签: javascript json vue.js

我正在使用getJSON调用一个外部Web服务,该服务返回一个字符串数组。 我有一个选择绑定到JSON数据。但是下拉列表不显示数据。 IE控制台显示数据数组。如果我将其输出为表格,它将显示在浏览器中。有什么想法吗?

例如:json返回数据(IE控制台): [“ process1 \ test1”,“ process2 \ test1”,“ process3 \ test1”,“ process3 \ test2”]

代码:

<script type="text/javascript">
        var app1 = new Vue({
            el: '#app1',
            data: {     
                selected: '',
                options: []
            },
            methods: {
                getData: function () {
                    $.getJSON("https://testapp/getmyprocesses?callback=?", function (data) {
                        this.options = data;
                        console.log(JSON.stringify(data));
                    });
                }
            },
            mounted: function () {
                this.getData();
            }     
        });
	</script>
<div id="app1">

    <select v-model = "selected">
     <option value="">Select a Process</option>
      <option v-for = "option in options" v-bind:value="option">
        {{ option }}
      </option>
    </select>
   <span>Selected: {{ selected }}</span>
    </div>

谢谢 Venky

1 个答案:

答案 0 :(得分:1)

使用箭头功能(data)=>代替function (data) {...,如下所示:

     getData: function () {
                $.getJSON("https://testapp/getmyprocesses?callback=?",(data)=> {
                    this.options = data;
                    console.log(JSON.stringify(data));
                });
            }

使用您的旧语法,您应该会遇到此错误:

  

这是未定义的