我们的extjs借助了一个模板引擎--artTemplate,它是一个开源的项目,不多说,给个链接吧:http://aui.github.io/artTemplate/

直接上代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>loading...</title>
<link href="resources/css/ext-all-debug.css" rel="stylesheet" type="text/css" />
<link href="resources/css/base.css" rel="stylesheet" type="text/css" />
<link href="resources/css/frame.css" rel="stylesheet" type="text/css" />
</head>
<body style="zoom: 1"> <script id="template-nav-header" type="text/html"> <div class="header">
<a class="brand logo" href="javascript:;" onclick="mc.frame.ui.selected.header();"><? if (data.logo || data.logo != '') { ?><img src="<?=data.log ?>" /><? } ?><?=data.title ?></a>
<nav>
<? for (var i = 0; i < data.nav.length; i++) { ?>
<li class="<? if (data.nav[i].nodes) { ?>more<? } ?>" tabindex="0" hidefocus="true">
<a data-ajax="true" <?=createAttribute(data.nav[i]) ?>>
<?include('template-nav-icon', {data: data.nav[i]}) ?>
<?=data.nav[i].name ?>
</a>
<? if (data.nav[i].nodes) { ?>
<?include('template-nav-header-more', {data: data.nav[i].nodes}) ?>
<? } ?>
</li>
<? } ?>
</nav> <nav class="user-info" id="userinfo">
</nav>
</div> </script> <script id="template-nav-header-more" type="text/html">
<?
var column = data.length > 7 ? 7 : data.length;
?>
<ul class="more-nav column<?=column ?>" style="width: <?=column * 150 ?>px;">
<? for (var i = 0; i < data.length; i++) { ?>
<li>
<a data-ajax="true" <?=createAttribute(data[i]) ?>>
<?include('template-nav-icon', {data: data[i]}) ?>
<?=data[i].name ?>
</a>
</li>
<? } ?>
</ul>
</script> <script id="template-nav-userinfo" type="text/html"> <li class="<? if (data.nodes) { ?>more<? } ?>" tabindex="0" hidefocus="true">
<a href="javascript:;"><?=data.nickname ?></a>
<? if (data.nodes) { ?>
<ul class="more-nav column1">
<? for (var i = 0; i < data.nodes.length; i++) { ?>
<li><a data-ajax="true" <?=createAttribute(data.nav[i])?>>修改密码</a></li>
<? } ?>
</ul>
<? } ?>
</li> </script> <script id="template-nav-aside" type="text/html">
<aside id="aside" class="aside">
<? for (var i = 0; i < data.length; i++) { ?>
<nav>
<? if (data[i].nodes) { ?>
<details open="true">
<summary>
<?include('template-nav-icon', {data: data[i]}) ?>
<?=data[i].name ?>
</summary>
<?include('template-nav-aside-nodes', {data: data[i].nodes}) ?>
</details>
<? } else { ?>
<?include('template-nav-aside-nodes', {data: [data[i]]}) ?>
<? } ?>
</nav>
<? } ?>
</aside>
</script> <script id="template-nav-aside-nodes" type="text/html">
<? for (var i = 0; i < data.length; i++) { ?>
<a data-ajax="true" <?=createAttribute(data[i]) ?>>
<?include('template-nav-icon', {data: data[i]}) ?>
<?=data[i].name ?>
</a>
<? } ?>
</script> <script id="template-nav-icon" type="text/html">
<? if (data.icon) { ?>
<img src="<?=data.icon ?>">
<? } ?>
</script> <script src="resources/js/lib/jquery-1.10.2.min.js"></script>
<script src="resources/js/lib/ext-all-dev.js"></script>
<script src="resources/js/lib/ext-lang-zh_CN.js"></script>
<script src="resources/js/lib/template.min.js"></script>
<script src="resources/js/user/template-helper.js"></script>
<script>
template.openTag = "<?";
template.closeTag = "?>";
</script> <script src="app/app/admin.js"></script> </body>
</html>

  可以看到js模板引擎的影子了,头部和左侧栏的显示就靠他了。一个最主要的文件 app/app/admin.js,这个是配置文件:

//系统配置,文件与类名对应的配置
Ext.Loader.setConfig({
enabled: true,
paths: {
'mc': 'core',
'admin': 'app',
'custom': 'custom'
}
});//开启动态加载 Ext.application({
name: 'admin', //定义名字空间
requires: ['custom.panelTab', 'mc.grid.PageCombo'],
controllers: [ //加载控制层依赖
'AdminController'
],
autoCreateViewport: true
});

path的配置很重要,项目目录和js的名字空间的对应关系就在这里了。有一点需要说一下,项目中的文件名要和文件中的名字空间保持一致,因为在mvc模式下所有文件都是按需加载的,如果不一致的话会报404错误。

另一个重要文件就是app/controller/AdminController.js了,所有代码逻辑的入口,各种数据的初始化都在init函数中完成。

时间紧任务重---extjs的学习就这么开始吧的更多相关文章

  1. Extjs的学习及MIS系统实践应用

    Extjs的学习及MIS系统实践应用(系列文章) 本系列文章从Extjs的实际运用出发,结合系统开发的实践经验,详细解释Extjs的基本控件及控件扩展的用法,和在平时的学习运用中一步一步查阅的资料.积 ...

  2. Extjs的学习及MIS系统实践应用(系列文章)

    本系列文章从Extjs的实际运用出发,结合系统开发的实践经验,详细解释Extjs的基本控件及控件扩展的用法,和在平时的学习运用中一步一步查阅的资料.积累经验的集锦.标题及链接奉上,用一个小程序,开启了 ...

  3. Extjs MVC学习随笔01

    Extjs Mvc模式下的整个MVC框架体系即下图: 包含了Controller(实现方法层),Store(数据来源管理层),View(页面布局层).之所以用MVC我想是因为减轻针对某一页面的单一的J ...

  4. ExtJS MVC学习手记

    开始学习ExtJS的MVC了.这篇文章仅是用来做一个目录,为自己这个阶段的学习内容做个索引. 手记涉及的文章: EXTJS MVC结构(译自ExtJS4.0文档中的<MVC Architectu ...

  5. 【旧文章搬运】PE重定位表学习手记

    原文发表于百度空间,2008-11-02========================================================================== 先定义一下 ...

  6. ExtJS MVC 学习手记3

    在演示应用中,我们已经创建好了viewport,并为之添加了一个菜单树.但也仅仅是这样,点击树或应用的其他地方获得不到任何响应.这个演示应用还是一个死的应用. 接下来,我们让这个应用活起来. 首先,给 ...

  7. ExtJS MVC学习手记 2

    开发环境 eclipse(indigo) ExtJS4.0 开发目标 使用store.model和controller创建菜单树 开发步骤 之前我们已经建立了一个MVC的项目框架.现在要做的就是在这个 ...

  8. ExtJS MVC学习手记 1

    开发环境: ExtJS4.2 eclipse indigo 开发目标  搭建项目框架,创建viewport 开发步骤说明 这次主要使用extjs4的mvc模式创建viewport.籍此初步了解mvc模 ...

  9. Extjs 4学习2

    主要学习采自:http://www.ishowshao.com/blog/2012/06/19/extjs-4-getting-started/ 用的sdk为extjs4.2.1 根据其中的提示装了一 ...

随机推荐

  1. Android 开发笔记___登陆app

    package com.example.alimjan.hello_world; /** * Created by alimjan on 7/4/2017. */ import android.con ...

  2. Node.js初探之GET方式传输

    Node.js初探之GET方式传输 例子:form用GET方法向后台传东西 html文件: <form action="http://localhost:8080/aaa" ...

  3. Knowledge_SPA——精研查找算法

    首先保证这一篇分析查找算法的文章,气质与大部分搜索引擎搜索到的文章不同,主要体现在代码上面,会更加高级,会结合到很多之前研究过的内容,例如设计模式,泛型等.这也与我的上一篇面向程序员编程--精研排序算 ...

  4. spring装配Bean过程

    主要流程: 1.读取配置文件 2.实例化bean和填充bean属性 这个粗略的流程感觉更像是一个需求,有了这个需求,那么spring内部是怎么处理的呢? 我们知道spring的两个核心接口BeanFa ...

  5. 手写particles

    var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var Grewer = { in ...

  6. NJCTF 极少部分wp

    前沿:刚刚结束了NJCTF,做出来的题目很少. 1,----非常简单的misc , check QQ ,直接在QQ群可以看到发布的flag. 2,konck----hint:韩琛截获了一张纸条,突然记 ...

  7. JVM菜鸟进阶高手之路十四:分析篇

    转载请注明原创出处,谢谢! 题目回顾 JVM菜鸟进阶高手之路十三,问题现象就是相同的代码,jvm参数不一样,表现的现象不一样. private static final int _1MB = 1024 ...

  8. 状态压缩dp第一题

    标签: ACM 题目: Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; ...

  9. 【MAVEN】maven系列--pom.xml标签详解

    pom文件作为MAVEN中重要的配置文件,对于它的配置是相当重要.文件中包含了开发者需遵循的规则.缺陷管理系统.组织.licenses.项目信息.项目依赖性等.下面将重点介绍一下该文件的基本组成与功能 ...

  10. PHP秒杀系统-高并发高性能的极致挑战

    慕课网实战教程后端:1.java c++算法与数据结构2.java Spring Boot带前后端 渐进式开发企业级博客系统3.java Spring Boot企业微信点餐系统4.java Sprin ...