javascript
  • html
  • ruby-on-rails
  • erb
  • 2017-07-05 30 views 1 likes 
    1

    我有一个轨道应用程序以及角度,我需要填充一大块HTML,以便它可以填写textarea标记的默认文本。目前我做的是添加这样的文字更清洁的方式来添加在JavaScript中的大块HTML的轨道

    "<div class='navbar navbar-default letter-header hidden-sm hidden-xs'>\n" + 
        " <div class='container'>\n" + 
        " <div class='letter-navbar-header navbar-header'>\n" + 
        "  <a href='/'><img src='/assets/logo.png' class='letters-logo navbar-brand'></a>\n" + 
        " </div>\n" + 
    
        " <div class='navbar-header header-text'>\n" + 
        "  <div class='navbar-text'>\n" + 
        "  "text" + "\n" + 
        "  </div>\n" + 
        " </div>\n" + 
        " <div class='letter-navbar-header navbar-header'>\n" + 
        "  <a href='/'>\n" + 
        "  <img src='' class='second-logo'>\n" + 
        "  </a>\n" + 
        " </div>\n" + 
        " <div class='navbar-header navbar-right'>\n" + 
        "  {{ user_login }}" + "\n" + 
        " </div>\n" + 
        " </div>\n" + 
        "</div>\n" 
    

    我想知道是否有更干净的方法来做到这一点。我一直在使用js.erb文件与渲染功能,这样

    <%= j render('navbar') %> 
    

    尝试,但把它放在资产文件夹,以便渲染功能无法正常工作https://stackoverflow.com/a/8370847/1087841。我想知道是否有更好的方法来做到这一点。

    [编辑] js.erb文件实际上是一个角度工厂,它具有导航栏的默认HTML,然后角度控制器可以使用它来呈现默认数据。工厂文件然后也被添加到application.js中作为需求。 这是一个需要默认的HTML

    <textarea name="t[navigation]" id="input-navigation-bar" ng-model="t.navigation_bar" class="form-control" rows="10"></textarea> 
    

    textarea的我可以在值标签与默认的HTML,但它有ng-model所以没有被显示出来。所以我为默认数据创建了一个工厂。现在工厂居住在/ assets中,并且在application.js中有一个//= require 'default_html_factory'

    回答

    0

    我终于找到了一个办法。在该局网页我加

    <script> 
        <%= render 'style_factory.js.erb' %> 
    </script> 
    

    ,并在工厂里添加此

    this.ngapp.factory('TenantStyle', function() { 
        return { 
        header: "<%= j render 'navbar' %>" 
        } 
    }); 
    

    ,并在_navbar.html.erb文件中添加此

    <div class="navbar navbar-default letter-header hidden-sm hidden-xs"> 
        <div class="container"> 
        <div class="letter-navbar-header navbar-header"> 
        </div> 
    
        <div class="navbar-header header-text"> 
         <div class="navbar-text"> 
         </div> 
        </div> 
        <div class='letter-navbar-header navbar-header'> 
         <a href='/'> 
         <img src='' class='second-logo'> 
         </a> 
        </div> 
    
        <div class="navbar-header navbar-right"> 
        </div> 
        </div> 
    </div> 
    

    ,现在我可以以角度调用工厂并获取标题值。

    相关问题