4-11handlebars模板的使用

1.nav-side/index.js

 

'use strict';

require('./index.css');

var _mm = require('util/mm.js');

//渲染模板数据

var templateIndex = require('./index.string');

 

// 通用页面头部

var navSide = {

option : {

name :'',

navList : [

{name : 'user-center',desc : '个人中心',href : './user-center.html'},

{name : 'oder-list', desc : '我的订单',href : './oder-list.html'},

{name : 'pass-update',desc : '修改密码',href : './pass-update.html'},

{name : 'about', desc : '关于mmall',href : './about.html'}

]

},

init : function(option){

//对传入的option合并默认option

$.extend(this.option,option);

this.renderNav();

},

//渲染导航菜单

renderNav : function(){

//计算active数据

for(var i= 0,iLength = this.option.navList.length; i<iLength; i++){

//判断navList[i]的name(user-center等)和option.name(空的点击时传入的name)的值是否相等。

对应渲染时index.string中的{{#isActive}}<li class="nav-item active{{/isActive}}

if(this.option.navList[i].name === this.option.name){

this.option.navList[i].isActive = true;

}

}

//渲染list数据

var navHtml = _mm.renderHtml(templateIndex,{

navList : this.option.navList

});

//把html放入容器

$('.nav-side').html(navHtml);

}

};

 

module.exports = navSide;

 

 

 

2.nav-side/index.html

<ul class="nav-side">

</ul>

 

3.nav-side/index.string模板

{{#navList}}

{{#isActive}}

<li class="nav-item active">

{{/isActive}}

{{^isActive}}

<li class="nav-item">

{{/isActive}}

<a href="{{href}}" class="link">{{desc}}</a>

</li>

 

{{/navList}}

 

模板

{{#isActive}}

<li class="nav-item active">

{{/isActive}}

是对于有active的处理

模板

{{#isActive}}

<li class="nav-item">

{{/isActive}}

是对于没有active的渲染处理

 

4.nav-side/index.js中渲染

1)//渲染list数据

var navHtml = _mm.renderHtml(templateIndex,{

navList : this.option.navList

});

//把html放入容器

$('.nav-list').html(navHtml);

2)//渲染模板数据

var templateIndex = require('./index.string');

 

5.webpack.config.js中设置好loader加载器

{ test: /\.string$/, loader:'html-loader'}

 

6.module.exports = navSide;虽然输出了,但是index/index.js中并没有调用

 

var navSide = require('page/nav-side/index.js');

//传值测试

navSide.init({

name:'user-center'

});

0

 

转载于:https://my.oschina.net/astros/blog/1925721

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值