Jquery 参考错误:menu.show未定义

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文件。我的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>
</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
放在参数中,但忘记在参数中传递
菜单