首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue.JS初始化新的DOM元素- Drupal

问Vue.JS初始化新的DOM元素- Drupal
EN

Stack Overflow用户
提问于 2020-07-20 17:21:18
回答 1查看 83关注 0票数 2

因此,我有一个Drupal8站点,它利用Vue.JS在每个页面上呈现各种类型。有很多依赖于数据的Vue.JS组件,比如用户购物篮(这是一个电子商务站点)。

我正面临一个问题,我使用Drupal视图来查询数据并向用户显示数据,在本例中,它是在页面上显示产品。这个Drupal视图使用AJAX对结果进行分页和过滤。第一个加载是在服务器端完成的,但是分页或过滤是通过AJAX完成的。

现在,这些返回的产品显示为“卡片”,卡片包含一个Vue.JS组件,该组件基本上是数量选择和添加到篮子按钮,用于处理该流程。

问题是,如果Drupal重新加载DOM元素(产品卡),Vue.JS“添加到篮子”组件不会通过Vue.JS呈现。我知道这是为什么,理想情况下,Vue.JS应该是驱动产品列表和查询Drupal API端点的东西,但这样我就会失去Drupal的一些好处,比如第一次加载的服务器端呈现、分页、搜索、过滤等。

所以我的问题是:我能做些什么让Vue.JS知道页面上的组件发生了变化并让Vue.JS呈现它们吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-22 05:37:22

我认为您正在寻找drupal行为。

它在请求完成时触发(包括ajax和页面加载)。

我认为代码应该是这样的:

代码语言:javascript
复制
Drupal.behaviors.myBehavior = {
  attach: function (context, settings) {

   //context will throw the ajax response.  
   //You can check in the context var 
   //if the response is the one you need to trigger vuejs
   console.log(context);
   MyvueInstance.load_my_data(context); //or whatever you need to say to Vuejs...
  }
};

检查接口:

https://www.drupal.org/docs/8/api/javascript-api/javascript-api-overview

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62992336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档