javascript – So fügen Sie von Ajax erhaltene Daten zur Komponente hinzu
大家讲道理
大家讲道理 2017-05-19 10:38:29
0
4
542

Gibt es keine Möglichkeit, v-for direkt zu einer benutzerdefinierten Komponente hinzuzufügen? Warum wird dieser Teil nicht mehr geladen, nachdem ich v-for hinzugefügt habe? sehr

Vue.component('my-article',{
props:['detail','user'],
template:'<h6>{{detail.title}}</h6>'+
         '<table id="phone">'+
            '<thead>'+
                '<tr>'+
                    '<td style="width: 150px;">{{detail.department}}</td>'+
                    '<td style="width: 119px;">{{detail.phone1}}</td>'+
                    '<td style="width: 121px;">{{detail.phone2}}</td>'+
                '</tr>'+
            '</thead>'+
            '<tbody>'+
                '<tr v-for="data in users" :user="data">'+
                    '<td>{{user.name}}</td>'+
                    '<td>{{user.details1}}</td>'+
                    '<td>{{user.details2}}</td>'+
                '</tr>'+
            '</tbody>'+
        '</table>'
});

So erstellen Sie eine Schleife und führen nur den tr-Abschnitt aus

let vm = new Vue({
el:"#module-duty",
data:{
    article:{
        title:"值班单位电话",
        department:"单位",
        phone1:"内线电话",
        phone2:"外线电话"
    },
    users:""
},
created:function(){
    $.ajax({
        url:"http://localhost:8080/opseyetem/post/find.do",
        type:"post",
        dataType:"json",
        success:function(result){
            if(result.state==0){
                vm.users = result.data;
            }
        },
        error:function(){
            alert("请求失败");
        }
    });
}

});

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(4)
为情所困
Vue.component('my-article',{
props:['detail','user'],
template:'<h6>{{detail.title}}</h6>'+
         '<table id="phone">'+
            '<thead>'+
                '<tr>'+
                    '<td style="width: 150px;">{{detail.department}}</td>'+
                    '<td style="width: 119px;">{{detail.phone1}}</td>'+
                    '<td style="width: 121px;">{{detail.phone2}}</td>'+
                '</tr>'+
            '</thead>'+
            '<tbody>'+
                '<tr v-for="data in user">'+
                    '<td>{{data.name}}</td>'+
                    '<td>{{data.details1}}</td>'+
                    '<td>{{data.details2}}</td>'+
                '</tr>'+
            '</tbody>'+
        '</table>'
});

HTML
<my-article :detail="article" :user="users"></my-article>
黄舟

你props接收的是detail, 你又用users, 你这user哪来的?

伊谢尔伦

给你定义的组件添加一个props,列如cdata属性,用来传递数据,在父件引用组件
<childComponent cdata="yourAjaxDATA"><childComponent>,这样子组件就可以cdata.attr来访问你AJAX请求的数据了

黄舟

最上面定义的组件中直接收到了一个变量detail,users是父组件的变量,子组件无法直接调用。
感觉你这个写的有点乱,一个id可以绑定两个vue?

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage