在骨干j页面中加载额外的条件

时间:2015-06-09 10:47:38

标签: javascript jquery backbone.js

我有一个外部开发的骨干应用程序 - 最初我执行定义&在第一行注入jquery等..)第7个param是'工具模板') 我

P.S为了清晰/轻松,已经从这里删除了许多代码(因为它与所有其他代码一起超过800行)&这对我来说是全新的,所以请随意指出任何明显的错误

第8行 - 我有以下一行:

window.isMobileDevice ? "text!views/tools/templates/i_tools.html" : "text!views/tools/templates/tools.html",

如果移动设备加载移动页面OTHERWISE加载标准(桌面)页面,这基本上就可以了。

我想用一些额外的逻辑修改它,但不确定如何......

我想添加另一个条件,基本上说明如下:

if (mobile device) 
  Load mobile page (as is now) e.g mobile-tools.html
else
  if (stampVar == true)
    load desktop stamp page e.g stamp-tools.html
  else
    load the standard desktop page e.g tools.html

关于如何做到这一点的任何想法? stampVar基本上是真/假的,我试图找出如何从现有的js对象动态加载它

 define([
  "jquery",
  "backbone",
  "config",
  "models/model",
  "collections/collection",
  "views/tools/toolsBase",
   window.isMobileDevice ? "text!views/tools/templates/i_tools.html" : "text!views/tools/templates/stamper_tools.html",
window.isMobileDevice ? "text!views/tools/templates/i_editor.html" : "text!views/tools/templates/editor.html",
window.isMobileDevice ? "text!views/tools/templates/i_txts.html" : "text!views/tools/templates/txts.html",
window.isMobileDevice ? "text!views/tools/templates/i_txtsItem.html" : "text!views/tools/templates/txtsItem.html",
"text!views/tools/templates/fontItem.html",
"curvetext"
],
function ($, Backbone, Config, Model, Collection, ToolsBase, ToolsTmpl, EditorTmpl, TxtTmpl, TxtItemTmpl, FontItemTmpl) {
"use strict";
var View = ToolsBase.extend({

    initialize: function() {
        var self = this;
        if (window.isMobileDevice) {
            $(window).bind("resize.app", _.bind(this.resizeTools, this));
        }
    },

    render: function() {
        var self = this, tpl_data, tools_tpl_data;
        $('.customtool-title .tools-tabs').show();
        self.stickerSetup();

        //console.log(app.ctors);
        tools_tpl_data = {
            tips: app.settings.tips,
            isCompetition: app.settings.competition !== undefined,
            allowCodes: app.ctors["toolsCtor"].getAllowCodes(),
            customType: 'stamper'
        };

        if (app.settings.competition !== undefined) {
            tools_tpl_data.competition = app.settings.competition
        }

        console.log(ToolsTmpl);

        self.$el.find(".tools").append(_.template(ToolsTmpl, tools_tpl_data));

        tpl_data = {
            stickerTxtTop : self.selectedTxt.top,
            stickerTxtMiddle : self.selectedTxt.middle,
            stickerTxtBottom : self.selectedTxt.bottom,
            selectedtitle : self.selectedTitle,
            selectedtemplate : self.selectedTemplate,
            stickerTemplate : Config.templates + self.selectedTemplate + Config.templateExtension,
            isCompetition : app.settings.competition !== undefined,
            designType: app.ctors["toolsCtor"].getDesignType(),
            tips: app.settings.tips,

            selectedCodes : self.selectedCodes,
            selectedPoints : self.selectedPoints
        };

        if (app.settings.competition !== undefined) {
            tpl_data.competition = app.settings.competition;
        }

        if (self.backgroundType === "color") {
            tpl_data.stickerBgImage = null;
            tpl_data.stickerFgImage = this.getFgPath(self.stickerFgImage);
            self.$el.find(".editor").append(_.template(EditorTmpl, tpl_data));
            $(".customtool-background").hide();
            $('.customtool-fill').css({
                background: self.stickerBgColor,
                opacity: self.stickerBgOpacity
            }).show();
        } else {
            tpl_data.stickerFgImage = this.getFgPath(self.stickerFgImage);
            tpl_data.stickerBgImage = this.getBgPath(self.stickerBgImage);
            self.$el.find(".editor").append(_.template(EditorTmpl, tpl_data));
            $(".customtool-background").show();
            $('.customtool-fill').hide();
        }

        self.applyTextFormatting();
        self.refreshArcs(1,".customtool-toptext", self.selectedTxt.top.arc);
        self.refreshArcs(2,".customtool-middletext", self.selectedTxt.middle.arc);
        self.refreshArcs(3,".customtool-bottomtext", self.selectedTxt.bottom.arc);

        self.toggleCodes();

        if (app.settings.competition !== undefined && !window.isMobileDevice) {
            $('#dialog-form').dialog({
                autoOpen: false,
                width: 600,
                modal: true,
                zIndex: 1001,
                dialogClass: 'competition-dialog',
                draggable: false,
                buttons: [{
                    'text': "Create Another",
                    'class': 'pull-right createanother',
                    'style': 'display:none',
                    'click': function(e) {
                        self.restart(e);
                        return false;
                    }
                }, {
                    'text': "Enter Competition",
                    'class': 'pull-right green enter',
                    'disabled': true,
                    'click': function(e) {
                        self.competitionEnter(e);
                        return false;
                    }
                }, {
                    'text': "Order",
                    'class': 'pull-right continue green',
                    'style': 'display:none',
                    'click': function(e) {
                        self.competitionContinue(e);
                        return false;
                    }
                }, {
                    'text': "Cancel",
                    'class': 'pull-left cancelcomp',
                    'click': function(e) {
                        self.competitionCancel(e);
                        return false;
                    }
                }]
            });
        }

        if (app.settings.competition !== undefined) {
            _gaq.push(['_trackPageview', '/sticker-competition/editor']);
        }

        if (!window.isMobileDevice) {
            app.trigger("tools:bg");
        }
    }

}, {
    sticker_id: null,
    toolsOpen: false
});
return View;
});

0 个答案:

没有答案