Как создать якорь и перенаправить на этот конкретный якорь в Ruby on Rails

'use strict';

var mainApp = angular.module('mainApp', [
    'ui.router', 
    'ui.bootstrap', 
    'ui.grid',
    'ui.grid.edit',
    'ngAnimate',
    'headerModule', 
    'galleryModule', 
    'appointmentsModule', 
 ]);


(function(){

    var App = {
        setControllers:   mainApp.controller(controllers),
        config:   config.config(),
        factories: {
            authFactory: factories.auth(),
            signupFactory: factories.signup(),
            someRequestFactory: factories.saveSomeRequest(),
        },
        controllers: {
            LoginController: controllers.userLogin(),
            SignupController: controllers.signup(),
            WhateverController: controllers.doWhatever(),
        },
        directives: {
            signup: directives.signup(), // add new user
            openLogin: directives.openLogin(), // opens login window
            closeModal: directives.modalClose(), // close modal window
            ngFileSelect: directives.fileSelect(),
            ngFileDropAvailable: directives.fileDropAvailable(),
            ngFileDrop: directives.fileDrop()
        },
        services: {
           $upload: services.uploadFiles(),
        }
    };
})();

Приведенный выше код является только примером.

Таким образом, вам не нужно помещать ng-controller="someController" в любом месте страницы - вы только объявляете <body ng-app="mainApp">

Такая же структура может использоваться для каждого модуля или модулей внутри модулей

37
задан Noz 23 January 2013 в 22:53
поделиться

4 ответа

Похоже, вы хотите использовать код link_to , который у вас есть в вашем вопросе. Затем в вашем списке комментариев вы должны убедиться, что у вас есть якорный тег с тем же именем в ссылке.

Так вот:

 <%= link_to 'Your comment', post_path(@comment.post) + "#comment_#{@comment.id.to_s}" %>

сгенерирует что-то вроде этого

 <a href="localhost:3000/posts/2#1comment_234">Your comment</a>

 /* html code */     

 <a name="comment_1234">This is a comment</a>

Вы должны вручную прикрепить #comment_ в противном случае метод link_to считает, что передаваемый им атрибут: anchor предназначен для этого тега.

5
ответ дан 27 November 2019 в 04:25
поделиться

На самом деле якорь - это опция для пути, а не для link_to

<%= link_to '#', post_path(comment.post, :anchor => "comment_#{comment.id}") %>

http: //api.rubyonrails .org / classes / ActionView / Helpers / UrlHelper.html # M001565

link_to "Comment wall", profile_path(@profile, :anchor => "wall")
       # => <a href="/profiles/1#wall">Comment wall</a>
81
ответ дан 27 November 2019 в 04:25
поделиться

Эти ссылки будут прокручиваться вниз до позиции, где у вас есть такой код:

<a name="comment_1"></a>

Я не знаю, есть ли помощники, которые сделают это за вас, но это очень просто, и вы можете написать свой собственный.

-1
ответ дан 27 November 2019 в 04:25
поделиться

Попробуйте это:

<%= link_to '#', post_path(comment.post), :anchor => "comment_#{comment.id}" %>
0
ответ дан 27 November 2019 в 04:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: