2010-05-27 4 views
0

Я использую монорельсовая дорога и попытался написать тег в представлении .vm написать некоторый JavaScript:MonoRail - Как написать JavaScript в .vm странице

<script type="text/javascript"> 
    //<![CDATA[ 
    $j(document).ready(function() 
    { 
    $j('#business_parentbusinesstype_id').change(function() 
    { 
    $j.ajax({ 
    url:'http://localhost:88/admin/business/GetChildBusinessTypes', 
    data: { parentId: $j('#business_parentbusinesstype_id').val() }, 
    dataType: 'script' 
    }); 
    }); 
    }); 
    //]]> 
</script> 

Можно было бы подумать, что это будет работать, так как это HTML-страницы, но это дает мне эту ошибку:

Невозможно обработать ресурс 'админ \ бизнес \ new.vm': Обнаружен «\ г \ п URL: \ 'http://localhost:88/admin/business/GetChildBusinessTypes \', \ г \ п данных: { parentId: "по строке 7, колонка 12. Ожидалось: ...

Что мне не хватает?

ответ

0

Мне интересно, видит ли nVelocity «$ j» и пытается найти его в сумке свойств и выполнить метод «ajax». Если «$ j» является короткой рукой для jQuery, попробуйте изменить его на полный «jQuery» и посмотрите, работает ли это.

+0

Спасибо за быстрый ответ. Да $ j для jQuery, я попытался изменить его на $ jQuery, и он по-прежнему дает ту же ошибку синтаксического анализа. Означает ли это, что весь код jQuery должен находиться внутри внешних js-файлов в MonoRail? – Justin

+0

Не «$ jQuery» - я думал, что вы можете использовать только «jQuery» (без знака доллара, и поэтому он не будет отключать nVelocity). Хотя я использовал MonoRail с прототипом, и я считаю, что он использует «$» тоже. Попробуйте просто «jQuery», и я буду копать некоторые из моих старых файлов .vm. – PatrickSteele

+0

Спасибо, это сработало! – Justin

0

Монорельс использует знак $ для объектов в Property Bag. Некоторые вещи, которые вы можете сделать, это вы можете использовать longhand (jQuery.someFuntion()) или переместить js в свой собственный js-файл, который вы просто включаете в свой файл vm.