我试图使用require.js传递参数,无论是对象,数组,数字还是字符串,但是我有一个问题,接收参数显示我 undefined
对象
estudiante: Object
ApelEstu: "Vides"
CeduEstu: "11223344"
FacuEstu: "Tecno e Ing"
Login_Usuario: "dfvides"
NombEstu: "Diego"
ProgEstu: "Sistemas"
RolEstu: 1
Semestre: 10
索引
require(['configuracion'], function (){
require(['login']);
});
配置(require.js)
requirejs.config({
baseUrl: 'js',
paths: {
jquery: ['librerias/jquery-1.11.2.min',
'librearias/jquery-2.1.3.min'],
login: 'proyecto/login',
database: 'proyecto/db'
}
});
login.js(数据包含对象)
console.log(data);
var estu = data.estudiante;
//console.log(estu);
base.iniciarbase();
base.guardar(estu);
db.js(包含模块)
define(function (){
var database = {
crear: function(){} --> done,
tablas: function(){} --> done,
insertarperfil: function(){} --fail
};
});
return {
iniciarbase: function (){
return database.tablas();
},
guardar: function (){
return database.insertarperfil();
}
};
});
函数插入参数
insertarperfil: function (Estudiante){
console.log(Estudiante);
var db, SqlGuardar, SqlDelete, SqlBuscar, mostrar;
db = database.crear();
SqlBuscar = 'SELECT * FROM Estudiante';
SqlGuardar = 'INSERT INTO Estudiante(cedula, nombre, apellido, rol, facultad, programa, semestre) VALUES(?,?,?,?,?,?,?)';
SqlDelete = 'DELETE FROM Estudiante';
db.transaction(function (tx) {
tx.executeSql(SqlBuscar, [], function (tx, results){
mostrar = results.rows.length;
if (mostrar === 0){
tx.executeSql(SqlGuardar, [Estudiante.CeduEstu, Estudiante.NombEstu, Estudiante.ApelEstu, Estudiante.RolEstu,
Estudiante.FacuEstu, Estudiante.ProgEstu, Estudiante.Semestre]);
}else{
tx.executeSql(SqlDelete);
tx.executeSql(SqlGuardar, [Estudiante.CeduEstu, Estudiante.NombEstu, Estudiante.ApelEstu, Estudiante.RolEstu,
Estudiante.FacuEstu, Estudiante.ProgEstu, Estudiante.Semestre]);
}
});
});
}
函数return saludo
saludoestu: function (){
var db, saludo, SqlConsulta;
db = database.crear();
//id = metodosestu.setCedulaEstu();
SqlConsulta = 'SELECT nombre, apellido FROM Estudiante';
db.transaction(function (tx) {
tx.executeSql(SqlConsulta, [], function (tx, results){
var numero = results.rows.length;
//var saludo = new Object();
for (var i=0;i<numero;i++){
saludo = {
nombre: results.rows.item(i).nombre,
apellido: results.rows.item(i).apellido
};
//console.log(saludo);
}
return (saludo);
});
});
}
return {
saludar: function (){
return database.saludoestu();
}
};
登录中的呼叫功能
var n = base.saludar(saludo);
console.log(n);
在他之上使用原型,但我也只在新项目中抛出相同的错误,旧的原型工程项目
答案 0 :(得分:0)
要从其他模块导入代码,请在您的define函数中包含require
:
define(function(require) { // <=== use require
var db = require('pathToFile/db'); // <=== get file
var iniciarbase= db.iniciarbase; // <=== call function from another module
console.log(iniciarbase);
var guardar= db.guardar;
console.log(guardar);
});
编辑:在像api这样的模块中使用return,只公开你想要其他模块使用的函数:
define(function (){
var database = {
crear : function(){}, // include comma
tablas : function(){}, // include comma
insertarperfil : function(){} // no comma
});
return {
iniciarbase : database.tablas, // don't use ()
guardar : database.insertarperfil
};
});
编辑2:
login.js
define(function(require) { // <=== use require
var db = require('./database'); // <=== get file
var estu = {
'ApelEstu': "Vides",
'CeduEstu': "11223344",
'FacuEstu': "Tecno e Ing",
'Login_Usuario': "dfvides",
'NombEstu': "Diego",
'ProgEstu': "Sistemas",
'RolEstu': 1,
'Semestre': 10
};
db.iniciarbase();
db.guardar(estu); // <=== pass object to db module
});
db.js
define(function (){
var database = {
crear: function(){},
tablas: function(){},
insertarperfil: function(estu){ // <=== pass estu
// do stuff here with estu
}
});
return {
iniciarbase: function (){
return database.tablas();
},
guardar: function (estu){ // <=== FORGOT TO ADD estu HERE
return database.insertarperfil(estu);
}
};
});