我在.jade文件中重复了2次内联脚本和代码块,并希望:
!= linkExist('foo')
我的想法是使用mixin
,但不知道该怎么做。我的代码按原样运行,但想知道如何更好地编写代码。想到codereview(因为我的代码实际上有效,我只是想改进它)但是玉器还没有标签,所以我认为可能更好。
h1 Teachers
for result in object.teachers
- var linkExist = function(i){
- if (result[i] != 'undefined'){
- var html = ', follow on ' + i + ': <a href="' + result[i] + '" target="_blank">' + result[i].split("http://")[1] + '</a>';
- return html;
- };
- }
section
h3 #{result.Name}
p.inline #{result.Nick}
img(src=result.img)
p.small Location: #{result.Location}
p.small
| Web:
for webResult in result.Web
a(href=webResult,target='_blank') #{webResult.split('http://')[1]}
!= linkExist('Twitter')
!= linkExist('GitHub')
//now it repeats the code but for students
h1 Students
for result in object.students
- var linkExist = function(i){
//etc.......
答案 0 :(得分:3)
你应该可以使用mixin;如果你也传递result
,它应该是非常通用的:
mixin linkExist(result, type)
if result[type] !== undefined
| , follow on #{type}: <a href="#{result[type]}">...</a>
//- use like this
for result in object.teachers
...
mixin linkExist(result, 'Twitter')
mixin linkExist(result, 'GitHub')
for result in object.students
...
mixin linkExist(result, 'Twitter')
mixin linkExist(result, 'GitHub')