2012-04-12 2 views
0

Я сейчас перехожу к веб-приложению из бэкэнда PHP/MySQL в структуру Grails. Тем не менее, приложение имеет справедливый бит старого кода javascript, написанного для него, который я хотел бы использовать с минимальной перезаписью. В настоящее время он не работает, и я не уверен, почему.Интеграция функций Javascript с приложением Grails

Друг написал замирание из слайд-шоу скрипт, который требует массив инициализируется как

var images[3]; 
images[0] = ['path to image', 'link to somewhere', 'target']; 

При написании в PHP, я просто использовал относительный путь и двойные кавычки для ссылки и цели, т.е.

images[0] = ["../images/file.jpg", "", ""] 

Переходя к Grails, я хочу, чтобы слайд-шоу было видно на всех страницах, таким образом, вставляя его в main.gsp.

Я объявил яваскрипт ссылку в голове как

<g:javascript src="fade_in.js" /> 

То, как оригинальный сценарий работал был массив изображения initalized в сценарии, а затем передается в через вызов функции в коде тела. Так как я не знаю, если его можно использовать вызов в Grails createLinkTo функцию в файле JS, я инициализируется массив и называется функцией с

<div id="slideshow"> 
    <script type="text/javascript"> 
     var images[3]; 
     images[0] = ["<g:createLinkTo dir='images' file='nsf.jpg' />", "", ""] 
     images[1] = ["<g:createLinkTo dir='images' file='east.jpg'/>", "", ""] 
     images[2] = ["<g:createLinkTo dir='images' file='usm_horz.png' />", "", ""] 
     new fadeshow(fadeimages,200,118,0,8000,1,"R");       
    </script> 
</div> 

Согласно поджигатель, пути к файлам правильно, но они не отображаются в указанной позиции div. Я вижу, где должны быть изображения, и их пустые.

Итак, что нужно сделать для интеграции этой функции с приложением Grails?

+0

Я предполагаю, что ваш вызов fadeshow, проходящий fadeimages, является опечаткой, так как ваш массив называется «изображениями»? –

+0

@Steve H. Опечатка – Jason

ответ

1

Вы не можете использовать теги GSP в файле .js, если вы не сопоставили js-файл как gsp. Вы можете создать файл gsp, например fade_in.gsp, который объявит массив изображений.

Например - fade_in.gsp

<script> 
    //you initialize your javascript array here - you can use all gsp tags. 
</script> 

А затем включить этот файл в GSP других страниц, которые нужно массив изображений.