• 时间紧任务重---extjs的学习就这么开始吧


    我们的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=" <?=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函数中完成。

  • 相关阅读:
    【WCF】无废话WCF入门教程
    【IIS8】在IIS8添加WCF服务支持
    iOS 中如何将View设置为圆角的矩形?
    在iOS开发中使用FMDB
    iOS中FMDB的使用【单例】
    普通分页笔记
    基础BaseDao
    连接池技术 实现的四个要素:jdbc.properties配置- 读取配置的单例类 --ConfigManage--BaseDao写法
    反射生成对象,调用对象方法
    context分页
  • 原文地址:https://www.cnblogs.com/longze/p/3277609.html
Copyright © 2020-2023  润新知