Javascript и AngularJS2. Почему JavaScript-скрипт срабатывает слишком рано и, предположим, не работает.

0

У меня проблема с моим скриптом javascript. Я запрограммировал в javascript ранее, и эта проблема не появилась. Я пишу веб-сайт с угловым и javascript, и это работает не очень хорошо. Сначала, когда я пытаюсь поместить <script></script> в шаблон компонента, он даже не запускается. Следующая проблема заключается в том, что я был вынужден поместить ссылку на внешний скрипт в индекс, и этот скрипт выглядит так:

$(window).load(function()
{
    $(".home_page_well").css({opacity:0.5});
    $("#system_epop_h6").hide();
    $("#kto_moze_korzystac_h6").hide();
    $("#co_zrobic_uzytkownik_h6").hide();
});

HTML выглядит так:

<div class="col-sm-12 well home_page_well system_epop">
                <img src="assets/img/question_mark.png"  alt="Co to jest?" class="img-rounded home_img center-block"/>

                <h4>
                    CZYM JEST SYSTEM EPOP?
                </h4>
                <h6 id="system_epop_h6">
                    System EPOP jest platformą pozwalającą na łatwy dostęp do wszystkich danych, które posiada przychodnia. Upraszcza także rejestrację do lekarza
                </h6>
            </div>
            <div class="col-sm-12 well home_page_well kto_moze_korzystac">
                <img src="assets/img/question_who.png"   alt="question_who" class="img-circle home_img center-block"/>

                <h4>
                    KTO MOŻE KORZYSTAĆ Z EPOP?
                </h4>
                <h6 id="kto_moze_korzystac_h6">
                    Wszyscy pacjenci przychodni a także jej pracownicy.
                </h6>
            </div>
            <div class="col-sm-12 well home_page_well co_zrobic_uzytkownik">
                <img src="assets/img/palm_shake.png"  alt="palm_shake" class="img-circle home_img center-block"/>

                <h4>
                    CO ZROBIĆ, ABY STAĆ SIĘ UŻYTKOWNIKIEM SYSTEMU
                </h4>
                <h6 id="co_zrobic_uzytkownik_h6">
                    Należy się zarejestrować poprzez panel pacjenta, lub zadzwonić do przechodni wtedy wszystkie operacje przeprowadzi wykwalifikowany personel.
                </h6>
            </div>

Bootply: http://www.bootply.com/oeHSnaPyCZ

Сайт о том, что все о: http://www.iqdrone.pl/dpawlik/eprzychodnia/#/logowanie

Я буду очень благодарен, если кто-нибудь сможет мне помочь. Особенно с этой проблемой, почему мой скрипт не будет запускаться в URL-адресе шаблона компонента. Заранее спасибо :)

  • 1
    это потому, что window.load сработает до того, как angularJS загрузит и проанализирует все. Я не знаю для angularJS2, как это сделать, однако angular не следует использовать в соединении с jQuery, вы должны искать, как это сделать в полном angular. В противном случае, если вы используете компоненты маршрута, прослушайте соответствующее событие для выполнения ваших вызовов jQuery.
  • 0
    Есть ли у HTML, который вы упомянули выше, угловой контроллер?
Показать ещё 5 комментариев

2 ответа

0
Лучший ответ

РЕШЕНИЕ: В файле *.ts вы должны добавить:

ngOnInit()
{

   //write here for example my_init_function(); which have to be declared in Your *.js file

}

Эта функция гарантирует, что функция set_home_page(); будет работать, когда угловые концы будут работать.

1

Используйте функцию тайм-аута в JQuery, чтобы она задерживала это событие.

setTimeout(function(){
	 $(".home_page_well").css({opacity:0.5})
	 $("#system_epop_h6").hide()
	 $("#kto_moze_korzystac_h6").hide()
	 $("#co_zrobic_uzytkownik_h6").hide()
}, 1000);

То есть, теперь проблема раннего запуска сценария будет решена.

  • 0
    Спасибо за Ваше решение.
  • 0
    Нет упоминаний, хорошего дня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню