为什么要在<a href="{{../dir}}....>这里的dir前加上“../”
来源:6-6 静态资源服务器 06

印斯茅斯调查员
2018-09-01
我通过调试当dir是“config”的时候,这个时候应该下一级文件路径应该是/config/default....,但是实际中页面里显示的是/defau...,这是为什么?
2回答
-
楼下正解
012018-09-12 -
夜愿小夜
2018-09-08
假设:
data = {
title: 'config'
dir: 'src/config',
files: ['defaultConfig.js']
}
解析: template(data)
{{#each files}}
<a href="{{../dir}}/{{this}}">{{this}}</a>
{{/each}}
在 tpl 的解析中,标签<a>所在的位置是each内部,而each对files解析的,也就是每一个的<a>对应一个files的元素。
按照常规理解,我取dir的值,在哪里都不应该跟路径有关,因为来自于data这个对象嘛。
但很明显这个handlebars很变态,在data内部也走了相对路径。
具体就是,你在files里面, 通过 .. 到 外层的 data对象,然后获取dir。
同样的,获取title也需要 {{../title}}
经过测试:
data = {
title: 'config'
dir: 'src/config',
files: ['defaultConfig.js'],
site: {'info':{'name':'imooc'}}
}
获取name则需要:
{{../site.info.name}}
以上只是推断,不是查看handlebars代码得到的。
最后:这个路径关系和老师在前面讲的几个路径关系,完全没有关系。只和handlebars解析有关,个人认为。
322018-11-18
相似问题