Jquery 参考错误:menu.show未定义
我有一个带有按钮的html文件。我的html文件加载main.js如下:Jquery 参考错误:menu.show未定义,jquery,Jquery,我有一个带有按钮的html文件。我的html文件加载main.js如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>My Account</title> <!-- RequireJS bootstrap file --> <script data-main="lib/main" src="lib/require.js"></script
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My Account</title>
<!-- RequireJS bootstrap file -->
<script data-main="lib/main" src="lib/require.js"></script>
</head>
<body>
<p>First name: <input data-bind="value:firstName"/></p>
<p>Last name: <input data-bind="value:lastName"/></p>
<p>Full name: <strong data-bind="text: fullName"></strong></p>
<button data-bind="click: capitalizeLastName">Go caps</button>
</body>
</html>
menu.js定义为:
requirejs.config({
//Path mappings for the logical module names
paths: {
'knockout': 'jslibs/knockout-2.3.0',
'jquery': 'jslibs/jquery-1.11.0',
'menu':'jslibs/menu'
},
// Shim configurations for modules that do not expose AMD
shim: {
'jquery': {
exports: ['jQuery', '$']
}
},
});
require(['jquery','knockout','menu'],
function($,ko) {
function AppViewModel() {
var self = this;
self.firstName = ko.observable("");
self.lastName = ko.observable("");
self.fullName = ko.computed(function (){
return this.firstName() +" "+this.lastName();
},this);
this.capitalizeLastName = function() {
menu.show();
};
};
vm= new AppViewModel();
$(document).ready(function() {
ko.applyBindings(vm);
});});
define(['jquery','knockout'],function($,ko){
var add = {
show: function(id) {
alert('inside show');
}
};
return add;
});
单击按钮时,我收到错误信息:
参考错误:未定义菜单
menu.show()
有指针吗?我已经检查了路径,所有路径都有效
谢谢
Tanu在args中添加菜单,如下所示:
function($,ko, menu) {
因为它在父函数作用域中不可用,所以它会导致一个引用错误:菜单未定义,因为您在子函数中使用菜单,并且您已将
$,ko
放在参数中,但忘记在参数中传递菜单