JavaScript, если заявление с Rails - PullRequest
3 голосов
/ 11 марта 2010

Вот мой кусок кода:

 var update_shipping_methods = function(methods) {
 $(methods).each( function(i) {
 $('div$methods img#shipping_loader').remove();
 var p = document.createElement('p');
 var s = this.name + ' ' + this.rate;
 var i = $(document.createElement('input'))
            .attr('id', this.id)
            .attr('type', 'radio')
            .attr('name', 'checkout[shipment_attributes][shipping_method_id]')
            .val(this.id)
            .click(function() { $('div#methods input').attr('checked', '');                     

$(this).attr('checked', 'checked'); });
if($(methods).length == 1) {
  i.attr('checked', 'checked');
}
var l = $(document.createElement('label'))
            .attr('for', this.id)
            .html(s);
$('div#methods').append($(p).append(i).append(l));
});
 $('div#methods input:first').attr('validate', 'required:true');
return;

};

строка: var s = this.name + '' + this.rate; это где мне нужно заявление if. По сути, «это» - это название и стоимость доставки. Мне нужно написать оператор if, который в основном удаляет this.rate if "some rails code"

Так что если "какой-то код рельсов"; var s = this.name; еще var s = this.name + '' + this.rate; конец

Это имеет смысл? Какие-нибудь мысли?

Ответы [ 2 ]

2 голосов
/ 11 марта 2010

Если этот js-код находится в файле .js, то я думаю, что лучше всего добавить дополнительный параметр к update_shipping_methods:

 var update_shipping_methods = function(methods, condition) {
   ...
   var s = condition ? this.name : this.name + ' ' + this.rate;
   ...
 }

Затем, когда вы генерируете вызовы по вашему мнению, вы можете включить условие rails в параметр, например так:

<script language='text/javascript'>
  update_shipping_methods(methods, <%= your_rails_condition %>);
</script>

Если добавить параметр невозможно, то второе лучшее решение - это добавление глобальной переменной с именем * 1010.* на JavaScript:

 var rails_condition = false; // default value
 var update_shipping_methods = function(methods) {
   ...
   var s = rails_condition ? this.name : this.name + ' ' + this.rate;
   ...
 }

Тогда на ваш взгляд:

<script language='text/javascript'>
  rails_condition = <%= your_rails_condition %>;
</script>

С уважением!

0 голосов
/ 11 марта 2010

Вы не можете помещать теги ERb в файлы javascript, но можете использовать их, если javascript равен в файла шаблона ERb. Просто поместите ваш код между <script></script> и вставьте <%= whatever %>, смешанный с javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...