Uncaught TypeError: undefined is not a function (asset-pipeline)
Uncaught TypeError: undefined is not a function (asset-pipeline)
我正在处理一个 Announcement
class,当事件被调用时,我用它来通过 API 加载信息。
Announcement = function Announcement (id) {
var id = id;
var vars = {};
this.load = function load () {
$.ajax({
url: '/api/announcements/' + id,
dateType: 'json',
async: false,
success: function (data) {
vars = data.announcement;
}
});
}
this.getVars = function getVars() {
return vars;
}
}
这是我的活动:
$(window).ready(function () {
Dynatable.selector.bind('dynatable:afterUpdate', function (rows) {
$('.dy-button').on('click', function (event) {
var record = $(this).attr('record');
var Announcement = new Announcement(record);
Announcement.load();
});
});
});
这两段代码位于不同的文件中,但它们与资产管道连接在一起。首先加载公告class。
当我达到:
var Announcement = new Announcement(record);
它说:
Uncaught TypeError: undefined is not a function
过去一天我一直在尝试修复它。
从函数中删除公告名称。
Announcement = function Announcement (id) {
至
Announcement = function (id) {
或在函数之前删除 var Announcement =
。
你有 var id = id
,这应该是 this.id = id
。
你不希望它成为
Announcement = function Announcement(id){...
.
应该只是
function Announcment(id) {...
原因是变量提升。您的代码正在执行,因为它是这样写的
$('.dy-button').on('click', function (event) {
var record;
var Announcement;
record = $(this).attr('record');
Announcement = new Announcement(record);
Announcement.load();
});
局部变量公告已覆盖 public 公告。
这可能是 good read 以了解更多详细信息。
我正在处理一个 Announcement
class,当事件被调用时,我用它来通过 API 加载信息。
Announcement = function Announcement (id) {
var id = id;
var vars = {};
this.load = function load () {
$.ajax({
url: '/api/announcements/' + id,
dateType: 'json',
async: false,
success: function (data) {
vars = data.announcement;
}
});
}
this.getVars = function getVars() {
return vars;
}
}
这是我的活动:
$(window).ready(function () {
Dynatable.selector.bind('dynatable:afterUpdate', function (rows) {
$('.dy-button').on('click', function (event) {
var record = $(this).attr('record');
var Announcement = new Announcement(record);
Announcement.load();
});
});
});
这两段代码位于不同的文件中,但它们与资产管道连接在一起。首先加载公告class。
当我达到:
var Announcement = new Announcement(record);
它说:
Uncaught TypeError: undefined is not a function
过去一天我一直在尝试修复它。
从函数中删除公告名称。
Announcement = function Announcement (id) {
至
Announcement = function (id) {
或在函数之前删除 var Announcement =
。
你有 var id = id
,这应该是 this.id = id
。
你不希望它成为
Announcement = function Announcement(id){...
.
应该只是
function Announcment(id) {...
原因是变量提升。您的代码正在执行,因为它是这样写的
$('.dy-button').on('click', function (event) {
var record;
var Announcement;
record = $(this).attr('record');
Announcement = new Announcement(record);
Announcement.load();
});
局部变量公告已覆盖 public 公告。
这可能是 good read 以了解更多详细信息。