Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Подгрузка страницы с js (https://javascript.ru/forum/angular/68109-podgruzka-stranicy-s-js.html)

blvckmeister 26.03.2017 20:00

Подгрузка страницы с js
 
Всем привет, только начал разбираться с angular, прошу строго не судить. Попрошу Вас пояснить, почему не подгружается js, в следующем случае:

var app = angular.module("app", ["ngRoute"]) 
    .config(function ($routeProvider) { 
            $routeProvider 
        .when("/", {
            template: "Main!", 
            controller: "homeController" }) 
        .when("/Application", { 
            templateUrl: "info.html", 
            controller: "playersController" }) 
}) 
    .controller("homeController", function ($scope) { 
        $scope.message = "Home Page"; }) 
    .controller("playersController", function ($scope, $http) { 
        $http.get("info.json") 
        .then(function (response) { 
            $scope.players = response.data;
        })
})


Соответственно когда перехожу на /Application ( templateUrl: "info.html" ) не грузится скрипт, который находится в info.html, разметка в свою очередь подгружается корректно.

Спасибо!

destus 27.03.2017 07:01

blvckmeister,
Как видишь, тут всё работает корректно. http://plnkr.co/edit/ZADx8TcNMs85b6h7vZtM?p=preview

blvckmeister 27.03.2017 09:22

Цитата:

Сообщение от destus (Сообщение 448536)
blvckmeister,
Как видишь, тут всё работает корректно. http://plnkr.co/edit/ZADx8TcNMs85b6h7vZtM?p=preview

Да, не спорю, тут работает абсолютно все как нужно, но у меня вопрос не в этом был. Я на страницу index.php с помощью ангуляра подгружаю страницу info.html, где в свою очередь есть скрипт, допустим alert('gogogo'); Если я напрямую захожу на info.html, то скрипт срабатывает, а если подгружаю страницу info.html через ангуляр, то скрипт не срабатывает, но через инспектор в хроме видно, что данный скрипт там есть.

destus 27.03.2017 09:43

blvckmeister,
Сложно сказать по тем данным, которые вы предоставляете. То есть с точки зрения англуяра - всё ок. Что там у вас делает php код непонятно. Возможно вы не настроили свой бэкэнд так, чтобы он на все запросы <имя_приложения>/blablabla, отдавал вашу точку входа в приложение. Для Node.js
/* change server routing by angular ui router */
app.use('/superapp', function(req, res) {
  res.sendFile(path.join(__dirname, 'app_client', "build", 'index.html'));
});

Цитата:

подгружаю страницу info.html, где в свою очередь есть скрипт, допустим alert('gogogo')
Там не должно быть никакого скрипта. Там разметка. Логику выносим в контроллер.

blvckmeister 27.03.2017 10:03

Цитата:

Сообщение от destus (Сообщение 448540)
Там не должно быть никакого скрипта. Там разметка. Логику выносим в контроллер.

Вооот, я как раз про это, т.е. получается, если я подгружаю разные страницы с помощью ngRoute, то те страницы, которые я подгружаю не должны содержать JS, т.к. он не будет срабатывать, потому что по логике ангуляра весь JS должен быть в контроллере главной страницы, так?

рони 27.03.2017 10:51

Цитата:

Сообщение от blvckmeister
так?

нет, чтобы скрипт сработал его надо "вырезать и создать занового", логика ангуляра тут не причём.

blvckmeister 27.03.2017 11:06

Цитата:

Сообщение от рони (Сообщение 448548)
нет, чтобы скрипт сработал его надо "вырезать и создать занового", логика ангуляра тут не причём.

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

Я не понимаю почему когда я например подгружаю страницу аяксом в какое-то место разметки, то эта страница подгружается вместе с рабочими скриптами, когда я получаю эту же страницу ангуляром методом $http.get("info.php"), то скрипт который в info.php не срабатывает, в отличии от аякса.

рони 27.03.2017 11:21

Цитата:

Сообщение от blvckmeister
подгружаю страницу аяксом

jQuery?

blvckmeister 27.03.2017 11:55

Цитата:

Сообщение от рони (Сообщение 448550)
jQuery?

Ага

blvckmeister 27.03.2017 12:06

Ссылка на полный проект
 
Давайте так, https://plnkr.co/edit/tiJBRTD4DB7fTG685toF?p=preview

Вот сам проект, проблема в том, что графики по ссылке Application не всегда загружаются, нужно "тыркать" туда-сюда по меню слева, пока во вкладке Application в блоках не прогрузятся графики, в чём проблема? Как подружать скрипт так, чтобы он работал стабильно?

Спасибо ещё раз.


Часовой пояс GMT +3, время: 02:12.