На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > ror использование javascript во вьюхах
      как использовать javascript в представлениях?
      пытался, что-то вроде этого, не сработало

      ExpandedWrap disabled
        <script>
            $(document).ready(function(){
                $("#browser").treeview({});
                
            });
         
            </script>
        <div id="browser">
        ...............
        </div>
      Сообщение отредактировано: Cepheus -
        а чем app/asserts/javascripts/application.js не подошел?
          XandoX т.е. хотите сказать, вставить код туда?
            для начала: какая версия ror? если 3.1 - то да
            во вторых: пройди хотя бы туториал http://ruby.railstutorial.org/ruby-on-rails-tutorial-book он правда да 3.0, но обще представления че-как там в этих ваших рельсах устроенно даст.
              XandoXда, версия 3.1, попробую туда использовать это
                не нашел как именно использовать application.js, можете подробнее пример описать?
                сам пытался добавить
                $(document).ready(function(){
                $("#browser").treeview({});

                });
                в application.js, но видимо не то=)
                  application.js это просто js файл кторые подключаеться во все вьюхи (по умолчанию) в 3.1 рельсах
                  так же там есть механизм подключения других скриптов строчкм `// require jquery` - видел? вот это оно

                  и чего у тебя не получаеться? я не понимаю
                    Цитата XandoX @
                    `// require jquery` - видел? вот это оно

                    видел т.е. подключаю в нем нужный js файл
                    require tree #(к примеру)
                    а не получается, то что нужно во вьюхе вызвать этот метод treeview для определенного куска, вот примерно это
                      как проверял?
                      скрипт-то вообще подгружаеться?
                      может проблема в скрипте и тот молча падет и не чего не делает?
                      в ообще показывай
                      application.js
                      application.html.erb
                      и вьюху
                        Цитата XandoX @
                        как проверял?
                        скрипт-то вообще подгружаеться?
                        может проблема в скрипте и тот молча падет и не чего не делает?
                        в ообще показывай
                        application.js
                        application.html.erb
                        и вьюху

                        ну как проверял, вот,что в application.js

                        require jquery.treeview

                        а теперь надо как то сделать во вьюхе это

                        ExpandedWrap disabled
                          <ul id="browser" class="filetree treeview-famfamfam">
                                  <li><span class="folder">Folder 1</span>
                                      <ul>
                                          <li><span class="folder">Item 1.1</span>
                                              <ul>
                                                  <li><span class="file">Item 1.1.1</span></li>
                                              </ul>
                                          </li>
                                          <li><span class="folder">Folder 2</span>
                                              <ul>
                                                  <li><span class="folder">Subfolder 2.1</span>
                                                      <ul id="folder21">
                                                          <li><span class="file">File 2.1.1</span></li>
                                                          <li><span class="file">File 2.1.2</span></li>
                                                      </ul>
                                                  </li>
                                                  <li><span class="folder">Subfolder 2.2</span>
                                                      <ul>
                                                          <li><span class="file">File 2.2.1</span></li>
                                                          <li><span class="file">File 2.2.2</span></li>
                                                      </ul>
                                                  </li>
                                              </ul>
                                          </li>
                                          <li class="closed"><span class="folder">Folder 3 (closed at start)</span>
                                              <ul>
                                                  <li><span class="file">File 3.1</span></li>
                                              </ul>
                                          </li>
                                          <li><span class="file">File 4</span></li>
                                      </ul>
                                  </li>
                              </ul

                        это то и будет само дерево,
                        если это layouts то, так
                        ExpandedWrap disabled
                          <script>
                              $(document).ready(function(){
                                  $("#browser").treeview({}
                                      
                                  });
                              </script>

                        , а как во вьюхе не пойму=)
                        Сообщение отредактировано: Cepheus -
                          мы явно друг друга не понимаем :)
                          вообщем
                          application.js должен выглядить как-то так
                          ExpandedWrap disabled
                            // require jquery
                            // require jquery.treeview
                             
                                $(document).ready(function(){
                                    $("#browser").treeview({}
                             
                                    });

                          при этом jquery.treeview.js должен лежать рядом с application.js
                          во вьюхе ничего специально делать не нужно

                          если ты app/view/layout/application.html.erb не трогал, то должно все работать.
                            XandoXну, да все сделал, css подгрузились, а js нет
                              покажи app/view/layout/application.html.erb

                              и в коде странице в браузере посмотри что скрипт прописан и проверь, что он подгружается, а не выдает какую http ошибку, а если выдает посмотри что в логах пишут
                                Цитата XandoX @
                                покажи app/view/layout/application.html.erb

                                и в коде странице в браузере посмотри что скрипт прописан и проверь, что он подгружается, а не выдает какую http ошибку, а если выдает посмотри что в логах пишут

                                ExpandedWrap disabled
                                  <html>
                                  <head>
                                    <title>RailsApplication1</title>
                                    <%= stylesheet_link_tag    "application" %>
                                    <%= javascript_include_tag "application" %>
                                    <%= csrf_meta_tags %>
                                  </head>
                                  <body>
                                   
                                  <%= yield %>
                                   
                                  </body>
                                  </html>

                                настройки все со старого rails 3.0.10 приложения, может по этому не работает
                                  Цитата Cepheus @
                                  настройки все со старого rails 3.0.10 приложения, может по этому не работает

                                  может, в конфиге config/application.rb надо включить asset-ы config.assets.enabled = true

                                  а в браузере чего видно?
                                    XandoX включил, из нового приложения вообще все настройки скопировал
                                      Цитата Cepheus @
                                      XandoX включил, из нового приложения вообще все настройки скопировал

                                      и?
                                        XandoXда нет результат, стили все показывает и все, правда кучу всего пишет
                                        вот кусочек

                                        Started GET "/assets/jquery.treeview" for 127.0.0.1 at 2011-10-27 16:47:08 +0600
                                        Served asset /jquery.treeview - 304 Not Modified (0ms)
                                          ну а asset/application видно в логах-то?

                                          Добавлено
                                          в самом html?

                                          Добавлено
                                          ты как-то избирательно на вопросы отвечаешь :)
                                          я тебя довно уже спросил, что в браузере видно?
                                            Цитата XandoX @
                                            ну а asset/application видно в логах-то?

                                            да говорит правда это

                                            Started GET "/assets/application.css" for 127.0.0.1 at 2011-10-27 16:53:46 +0600
                                            Served asset /application.css - 304 Not Modified (0ms)


                                            Started GET "/assets/application.js" for 127.0.0.1 at 2011-10-27 16:53:46 +0600
                                            Served asset /application.js - 304 Not Modified (0ms)

                                            Цитата XandoX @
                                            в самом html?

                                            интересно исходник html
                                            <script src="/assets/application.js" type="text/javascript"></script>
                                            хотя в другом каталоге лежит

                                            в браузере, все видно, только не как дерево=)))))))))

                                            Добавлено
                                            хотя нет, так и должно быть просто assets/*.js

                                            Добавлено
                                            еще раз вот application.js

                                            ExpandedWrap disabled
                                              //require jquery.js
                                              //require jquery.treeview.js
                                               
                                               
                                              $(document).ready(function(){
                                                  $("#browser").treeview({});
                                              });


                                            вот вьюха

                                            ExpandedWrap disabled
                                              <ul id="browser" class="filetree treeview-famfamfam">
                                                <li><span class="folder">Folder 1</span>
                                                <ul>
                                                  <li><span class="folder">Item 1.1</span>
                                                  <ul>
                                                    <li><span class="file">Item 1.1.1</span></li>
                                                  </ul>
                                                  </li>
                                                  <li><span class="folder">Folder 2</span>
                                                  <ul>
                                                    <li><span class="folder">Subfolder 2.1</span>
                                                    <ul id="folder21">
                                                      <li><span class="file">File 2.1.1</span></li>
                                                      <li><span class="file">File 2.1.2</span></li>
                                                    </ul>
                                                    </li>
                                                    <li><span class="folder">Subfolder 2.2</span>
                                                    <ul>
                                                      <li><span class="file">File 2.2.1</span></li>
                                                      <li><span class="file">File 2.2.2</span></li>
                                                    </ul>
                                                    </li>
                                                  </ul>
                                                  </li>
                                                  <li class="closed"><span class="folder">Folder 3 (closed at start)</span>
                                                  <ul>
                                                    <li><span class="file">File 3.1</span></li>
                                                  </ul>
                                                  </li>
                                                  <li><span class="file">File 4</span></li>
                                                </ul>
                                              </li>
                                              </ul
                                              а если /assets/application.js в браузере открыть?
                                                Цитата XandoX @
                                                а если /assets/application.js в браузере открыть?

                                                да проверял, открывается
                                                  ну и чего там?

                                                  Добавлено
                                                  Цитата Cepheus @
                                                  Started GET "/assets/jquery.treeview" for 127.0.0.1 at 2011-10-27 16:47:08 +0600
                                                  Served asset /jquery.treeview - 304 Not Modified (0ms)


                                                  вот это странно, по идеи все файлы которые require должны инлайнится в application.js и ни каких запросов на них отдельно не должно идти, от куда это у тебя в логах?
                                                    XandoXну там текст подключенных js файлов (приводить не стал он большой)
                                                      попробуй
                                                      вот это
                                                      ExpandedWrap disabled
                                                        $(document).ready(function(){
                                                            $("#browser").treeview({});
                                                        });

                                                      заменить на
                                                      ExpandedWrap disabled
                                                        $(function(){
                                                            alert(1);
                                                            $("#browser").treeview({});
                                                        });


                                                      если alert вылитит, но treeview не построится, то ищи косяк в treeview, по остальному у тебя все ок, должно работать
                                                        XandoX все заработало, у меня был application.css косячный, скопировал с нового созданного приложения и все заработало. Пасибо огромное, за помощь, ез Вас всеравно бы не разобрался.
                                                          Цитата Cepheus @
                                                          у меня был application.css косячный,

                                                          и чего же там было? ну что аж javascript не отрабатывал?
                                                            Цитата XandoX @
                                                            и чего же там было? ну что аж javascript не отрабатывал?


                                                            там у меня были всякие стили,
                                                            а как вставил это

                                                            ExpandedWrap disabled
                                                              /*
                                                               * This is a manifest file that'll automatically include all the stylesheets available in this directory
                                                               * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
                                                               * the top of the compiled file, but it's generally better to create a new file per style scope.
                                                               *= require_self
                                                               *= require_tree .
                                                              */

                                                            заработало, как объяснить, увы не знаю
                                                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                            0 пользователей:


                                                            Рейтинг@Mail.ru
                                                            [ Script execution time: 0,0655 ]   [ 16 queries used ]   [ Generated: 23.04.24, 18:16 GMT ]