0

名前空間の扱い方について少し混乱しています。

私のサイトのすべてのページのレイアウトを定義する私のマスターページには、次のものがあります。

<script type="text/javascript">
</script>
@Scripts.Render("~/bundles/theme")
@Scripts.Render("~/bundles/common")
@Scripts.Render("~/bundles/layout")
@Scripts.Render("~/bundles/user")

レイアウトバンドル内の唯一のスクリプトは次のとおりです。

$(document).ready(function () {
    "use strict";
    addAjaxControls();
    addAccessControls();
    addBodyControls();
    addContentControls();
    addThemeControls();

    if (localStorage.getItem('Sidebar')) {
        var sidebar = localStorage.getItem('Sidebar');
        setSidebar(sidebar);
    }
    if (localStorage.getItem('Theme')) {
        var theme = localStorage.getItem('Theme')
        setTheme(theme);
    }
});

私は物事を明確に定義したいので、次のようなものを追加するのは合理的で良い考えです:

<script type="text/javascript">
    var Layout = Layout || {};
</script>
@Scripts.Render("~/bundles/theme")
@Scripts.Render("~/bundles/common")
@Scripts.Render("~/bundles/layout")
@Scripts.Render("~/bundles/user")

そして私のlayout.jsで:

$(document).ready(function () {
    "use strict";
    addAjaxControls();
    addAccessControls();
    addBodyControls();
    addContentControls();
    addThemeControls();

    if (localStorage.getItem('Sidebar')) {
        var Layout.sidebar = localStorage.getItem('Sidebar');
        setSidebar(Layout.sidebar);
    }
    if (localStorage.getItem('Theme')) {
        var Layout.theme = localStorage.getItem('Theme')
        setTheme(Layout.theme);
    }
});
4

1 に答える 1

0

これは機能しません:

var Layout.sidebar = localStorage.getItem('Sidebar');

単純に

Layout.sidebar = localStorage.getItem('Sidebar');

これにより、前に作成したオブジェクトにsidebarプロパティが追加されます。Layout

于 2012-10-03T16:35:54.250 に答える