我写了一个应该执行回调的方法,但回调没有被执行:
buildTable('lt', 'viewltDetails', commonTireColumns, function(error) {
if(error) {
console.log(error);
} else {
console.log('calculating');
calculatedPricing();
}
});
我的buildTable函数 - 它实际上是使用aldeed-tabular包创建一个数据表:
function buildTable(tblName, detailsBtn, columnDetails) {
var columns = [];
for(var key in columnDetails) {
columns.push({
data: columnDetails[key].data,
title: columnDetails[key].title,
width: columnDetails[key].width
});
};
columns.push({
title: "Quantity",
tmpl: Meteor.isClient && Template.itemQuantityCell,
width: "2%"
});
columns.push({
title: "Details",
tmpl: Meteor.isClient && Template[detailsBtn],
});
columns.push({
title: "Action",
tmpl: Meteor.isClient && Template.addToCartCell,
});
TabularTables[tblName] = new Tabular.Table({
name: tblName,
changeSelector: function(selector, userId) {
return selector;
},
collection: Products,
pub: "tabular_Products",
columns: columns,
extraFields: ['priceFET', 'invoicePrice', 'category']
})
};
buildTable
函数工作正常,但它没有执行console.log('calculating')
和calculatePricing()
命令,尽管该函数没有抛出任何错误。
我的calculatePricing函数如下所示:
calculatedPricing: function() {
var price = 300;
return price;
};
有人可以帮忙吗?谢谢!
答案 0 :(得分:3)
请尝试这样。 你添加了一个calback函数,但你没有参数,所以你永远不会在你的函数上调用它。
function buildTable(tblName, detailsBtn, columnDetails, callback) {
//your code here
if(typeof callback === "function"){
callback();
}
}
答案 1 :(得分:1)
你需要为你的buildTable函数添加一个回调参数
变化:
function buildTable(tblName, detailsBtn, columnDetails) {
为:
function buildTable(tblName, detailsBtn, columnDetails, callback) {
然后,称之为:
callback(someError);