Vue JS default/starting 搜索词列表中的一个值

VueJS default/starting a value ina list of searched terms

尝试使用 Vue 制作搜索插件,但我在向选项列表添加 starting/default 值时遇到问题。如果我注释掉涉及 start 道具的对或模板行,其余部分工作正常,但如果我将它们留在其中,则不会呈现任何内容。

组件代码:

Vue.component('search', {
props: {
    type: String, 
    hidein: String, 
    start: {
        type: Object,
        default: null
    }
},
//props: ['type', 'hidein', 'start'],

data: function () {
    return {
        search: "",
        select: "",
        results: [],
    };
},

template: '<div @load="loaded"><input :id="hidein" type="text" v-model="search" @keyup="updateList">'+
'<input type="hidden" :name="hidein" v-model="select" class="form-control">'+
'<div v-if="start">Current: <span @click="select=start.id" :class="{\'label label-success\':(select==start.id)}>'+
'+ {{start.name}}</span></div>'+
'<div v-if="results.length">Do you mean:<ul>'+
'<li v-for="result in results" :key="result.id"><span @click="select=result.id" :class="{\'label label-success\':(select==result.id)}">'+
'+ {{result.name}}</span></li>'+
'</ul></div></div>',

methods: {
    updateList: function(e) {
        var response = [];
        console.log("search: "+this.search);
        $.ajax({
            method: "GET",
            url: "/api/search/"+this.type,
            data: { key: this.search }
        }).done(function( msg ) {
            this.results = msg;
            console.log(this.results);
        }.bind(this));
    }, 
    loaded: function () {
        this.select=!!this.start ? this.start.id : null;
    }
},
});

组件调用:

<search type="ships" hidein="ship_id" ></search>

谁能告诉我我做错了什么? (除了 hacked together 模板之外,我希望这是一个与我所拥有的管道完全不同的问题)

这里少了一个"

:class="{\'label label-success\':(select==start.id)}

而且,请使用模板文字让您的生活更轻松。

  `<div @load="loaded"><input :id="hidein" type="text" v-model="search" @keyup="updateList">
    <input type="hidden" :name="hidein" v-model="select" class="form-control">
    <div v-if="start">
      Current: 
      <span @click="select=start.id" :class="{'label label-success':(select==start.id)}">
        {{start.name}}
      </span>
    </div>
    <div v-if="results.length">
      Do you mean:
      <ul>
        <li v-for="result in results" :key="result.id">
          <span @click="select=result.id" :class="{'label label-success':(select==result.id)}">
            {{result.name}}
          </span>
        </li>
      </ul>
    </div>
  </div>`