laravel - 当索引未知时更新特定数组条目

标签 laravel vue.js vuejs2

在页面加载时,我从服务器收到一组对象,这些对象使用 v-for 循环显示。

该应用程序是实时的,因此当另一个用户更新数组中的对象时,我会收到一个包含更新对象的推送事件(这是包含更新模型的 Laravel 5.4 广播事件)。

然后如何在数组中找到该对象以将其替换为更新的版本?

示例组件 JS

export default{
    data(){
        return {
            items: []
        }
    },

    mounted(){
       ...some code to get the array from the server

       this.items = server.response;
    },

    created() {
         Echo.private('channel-name)
           .listen('event', (event) => {

               **What do I do here with the received model to update the items array?**

            });
        });
    }
}

最佳答案

我认为您的 item 实体中应该有一些 ID,然后只需查找具有相同 ID 的项目并替换它即可。可以进行替换,例如使用map:

...
//assuming you have ID inside your item entity
//and your new "replacement" model is in event.item

.listen('event', (event) => {
  var newItem = event.item;

  this.items = this.items.map(item => {
   return item.ID === newItem.ID ? newItem : item;
  });
});
...

关于laravel - 当索引未知时更新特定数组条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42645428/

相关文章:

laravel - 使用 Laravel 填充生产中的表

laravel - 在查询执行后从 Eloquent 集合中选择某些列

javascript - 将数据传递给 VueJS 中的组件

javascript - 计算属性对 VueJS 中的 window.innerwidth react

javascript - Vue.js - 单向数据绑定(bind)从子级更新父级

php - id 唯一的 Laravel 规则验证

laravel - Form::Laravel Blade 模板中的密码

reactjs - 如何在 momentjs 中获取 endOf day toISOString() 但毫秒应该是 .000Z 而不是 .999Z

javascript - 如何使用 Vue.js mixins 替换字符串值?

vuejs2 - "csv only"的 Vuetify v-file-input 规则