我正在尝试构建一个简单的单页Web应用程序而且我被卡住了。我正在尝试使用module pattern
:
var spa = (function () {
var initModule = function( $container ) {
$container.html(
'<h1 style="display:inline-block; margin: 25px;">'
+ 'hello world!'
+ '</h1>'
);
};
return { initModule: initModule };
})();
理论上应该在这里引用:
<!doctype html>
<html>
<head>
<title>SPA Starter</title>
<!-- stylesheets -->
<link rel="stylesheet" type="text/css" href="css/spa.css" />
<link rel="stylesheet" type="text/css" href="css/spa.shell.css" />
<!-- third-party javascript -->
<script src="js/jq/jquery-1.11.3.js"> </script>
<script src="js/jq/jquery.uriAnchor-1.1.3.js"</script>
<!-- my Javascript -->
<script src="js/spa.js"> </script>
<script src="js/spa.shell.js"></script>
<script>
$(function() { spa.initModule( $('#spa') ); });
</script>
</head>
<body>
<div id="spa"></div>
</body>
</html>
我尝试在控制台中执行spa.initModule( $('#spa') );
并且它正常工作,但在我的代码中却没有。
当我尝试跑步时,我得到Uncaught TypeError: spa.initModule is not a function
提前致谢。
答案 0 :(得分:2)
http://jsfiddle.net/AlexeiTruhin/4rg0mdgb/ - 适合我。
这意味着您有错误,例如在声明脚本时:
<script src="js/jq/jquery.uriAnchor-1.1.3.js"</script>
关闭&lt;脚本..&gt;
答案 1 :(得分:0)
我没有插入&#34;()&#34;介于&#34;}&#34;和&#34;);&#34;在spa对象定义的最后位置。