我正在处理一个Announcement
类,用于在调用事件时通过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();
});
});
});
这两段代码位于不同的文件中,但它们与资产管道连接在一起。公告类首先加载。
当我到达时:
var Announcement = new Announcement(record);
它说:
Uncaught TypeError: undefined is not a function
过去一天我一直试图修复它。
答案 0 :(得分:0)
从功能中删除公告名称。
Announcement = function Announcement (id) {
到
Announcement = function (id) {
或在功能之前删除var Announcement =
。
答案 1 :(得分:0)
你有var id = id
,这应该是this.id = id
。
你不希望它是
Announcement = function Announcement(id){...
。
应该是
function Announcment(id) {...
答案 2 :(得分:0)
原因是可变升降。您的代码正在执行,因为它是像这样编写的
$('.dy-button').on('click', function (event) {
var record;
var Announcement;
record = $(this).attr('record');
Announcement = new Announcement(record);
Announcement.load();
});
本地变量公告已覆盖公众变量。
这可能是good read以获取更多细节。