<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<!-- require.jsの読み込みとメインファイルの指定(for plunker) -->
<script data-main="page.js" async data-require="require.js@2.1.4" data-semver="2.1.4" src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.4/require.js"></script>
<!--<script src="require.js" data-main="page.js" async></script>-->
<title>test Document</title>
</head>
<body>
</body>
</html>
// site-common.js
define(function(){
// サイト内で共通で使う定数を纏めたオブジェクト
var constant = {
title:'とあるサンプル',
description:'RequireJSをつかってみるとあるサンプル'
};
// 指定されたidに対する定数を返す関数
function getConstant(id) {
return constant[id];
}
// 指定されたidに対する定数を追加定義する関数
function setConstant(id, value) {
constant[id] = value;
}
// 指定された文字をページ内に表示する関数
function commonPrint(str) {
var elem = document.createElement('p');
elem.innerHTML = str;
document.body.appendChild(elem);
}
return {
getConstant:getConstant,
setConstant:setConstant,
commonPrint:commonPrint
};
});
// addon.js
define(['site-common'], function(Common){
// 鍵カッコを定義
//constant.startSquare = '「'; // これはエラーに
//constant.endSquare = '」'; // これはエラーに
Common.setConstant('startSquare', '「'); //意図していた書き方に
Common.setConstant('endSquare', '」'); //意図していた書き方に
// 鍵カッコをつけた文字列を返す
function addSquareBracket(str) {
return Common.getConstant('startSquare') + str + Common.getConstant('endSquare');
}
return {
addSquareBracket:addSquareBracket
};
});
// page.js
require(['site-common','addon'], function(Common, Addon){
// ページロード時にタイトルと説明を表示
//window.addEventListener('load', function(){ // 削除
var title = Addon.addSquareBracket(Common.getConstant('title'));
var description = Common.getConstant('description');
Common.commonPrint(title);
Common.commonPrint(description);
//}); // 削除
});