2
我有以下凤凰文件夹结构:呼叫通道从另一个JS连接功能文件
web/
static/
js/
app.js
script.js
socket.js
app.js
有...
import socket from "./socket"
import script from "./script"
brunch-config.js
有...
files: {
javascripts: {
joinTo: "js/app.js"
}
// ...
}
script.js
有...
$('#some-button').on('click', function() {
connectToChannel(data);
});
socket.js
有...
import {Socket} from "phoenix"
let socket = new Socket("ws://example.com/updates", {params: {"auth-token": "AUTH-TOKEN"}})
function connectToChannel(data) {
socket.connect()
let channel = socket.channel("updates:new", {})
channel.join()
.receive("ok", resp => { console.log("Joined successfully", resp) })
.receive("error", resp => { console.log("Unable to join", resp) })
channel.on("update", payload => {
console.log(payload);
})
}
export default socket
...然而,当我点击some-button
我得到在浏览器的控制台下面的错误:
Uncaught ReferenceError: connectToChannel is not defined
连接成功,如果我把socket.js
的内容放在script.js
内,但我想保持它们分开。
我得到' Uncaught TypeError:(0,_script2.default)不是'app.js'中的一行,它表示'script(connectToChannel);''Uncaught TypeError:connectToChannel不是'I'行的函数' m调用该函数。 – webeno
您是否从'script.js'中导出默认*该函数?你从'socket.js'导出'export {socket,connectToChannel}'吗?你可能错过了一些东西,因为这应该起作用。 我刚刚将这三个文件粘贴到一个空的早午餐应用程序中,它*正在工作。 –
对不起,您在答案中说过我必须* export default * that(which?)函数? – webeno