【问题标题】:Rails if statement in the Javascript tag in HAML在 HAML 中的 Javascript 标记中的 Rails if 语句
【发布时间】:2016-07-26 22:37:48
【问题描述】:

所以,在我的一个观点中,我有一些多余的代码:

- unless @event.start_time.nil? 
  :javascript
    $(function() {
      $('#datetimepicker1').datetimepicker({
        format: 'dddd, MMMM Do, YYYY, h:mm a'
      });
      $('#datetimepicker1').data("DateTimePicker").date("#{@event.datepicker}");
    });
- else
  :javascript
    $(function() {
      $('#datetimepicker1').datetimepicker({
        format: 'dddd, MMMM Do, YYYY, h:mm a'
      });
    });

基本上,我将 datetimepicker 用于我的一个字段,如果模型具有该字段的值,它将被附加。如果我能做这样的事情会更干净:

:javascript
  $(function() {
    $('#datetimepicker1').datetimepicker({
      format: 'dddd, MMMM Do, YYYY, h:mm a'
    });
    - unless @event.start_time.nil?
      $('#datetimepicker1').data("DateTimePicker").date("#{@event.datepicker}");
  });

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 haml


    【解决方案1】:

    为什么不使用 Ruby/HAML 设置变量并在 JS 中处理条件?

    :javascript
    
      $(function() {
    
        $('#datetimepicker1').datetimepicker({
          format: 'dddd, MMMM Do, YYYY, h:mm a'
        });
    
        var event_start_time_present = #{@event.start_time.present?};
    
        if (event_start_time_present) {
          $('#datetimepicker1').data("DateTimePicker").date("#{@event.datepicker}");
        }
    
      });
    

    【讨论】:

      【解决方案2】:

      我们可以嵌入一个ruby代码来检查条件unless @event.start_time.nil?,所以代码是:

      :javascript
        $(function() {
          $('#datetimepicker1').datetimepicker({
            format: 'dddd, MMMM Do, YYYY, h:mm a'
          });
          var validStartTime = "#{@event.start_time.present?}";
          if (validStartTime === 'true') {
            $('#datetimepicker1').data("DateTimePicker").date("#{@event.datepicker}");
          }
        });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-24
        • 2023-03-18
        • 1970-01-01
        • 2014-05-29
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多