如何只需要一个我需要的频道?

问题描述

所有通道都在文件javascript/channels上创建,并且认情况下,此路径的所有内部都已加载。

不需要全部,我只删除文件channels/index,其中包含:

// Load all the channels within this directory and all subdirectories.
// Channel files must be named *_channel.js.

const channels = require.context('.',true,/_channel\.js$/)
channels.keys().forEach(channels)

但是如何在我需要的页面上要求我的频道?

在我需要的页面上使用= javascript_pack_tag "channels/my_channel"无效。

哪些是最佳做法?如何保留许多渠道,仅在我需要的地方要求?

解决方法

Channel js文件(确切地说是频道订户)通常包含类似

的内容
const channel_subscription = consumer.subscriptions.create({
  channel: 'SomeChannel',received: function(data) {...}
});

订阅会在执行时创建(默认情况下会在页面加载时创建),但是您可以使其成为函数:

function connect_this_exact_channel() {
  return consumer.subscriptions.create(...)
}

,并且仅在调用该函数时才会创建订阅。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...