Страница AngularJS загружается дважды

Ниже приведен мой код angularJS, присутствующий в app.js:

'use strict';
var app = angular.module('app', ['slick']);
app.config(['$locationProvider', function($locationProvider) {
    $locationProvider.html5Mode({
        enabled: true,
        requireBase: false
    });
}])

app.
controller('messageFunnel',['$scope', '$http', 
'$location',function($scope, $http, $location) {
    var msgChat = $location.search().msgChat;
    var email   = $location.search().email;
    var url = $location.absUrl();
    url = url.substring(0, url.indexOf('msgChat'));
    $scope.url = url;
    $http({
        method: 'POST',
        url: 'url',
        data: {
            "msgChat": msgChat,
            "email" : email
        }
    }).then(function successCallback(response) {
           $scope.data = response.data;
           console.log($scope.data)
       }, function errorCallback(response) {
              console.log(response.data);
       });
}]);

Ниже приведена моя html-страница, которая в основном использует данные, полученные из вызова API в app.js:

<body>
<div class="row" ng-app="app" ng-controller="messageFunnel">
<div class="col-lg-4 col-md-6 col-sm-12">
  <div class="white-box">
    <h3 class="box-title">Prior</h3>
    <div class="comment-center">
      <div class="comment-body b-none" ng-repeat="item in data.messages[0].prevArray">
        <div class="mail-contnet">
          <span class="time">{{item.count}}</span>
          <a href="{{scope.url}}msgChat={{item.chat}}" target="_blank"><i class="fa fa-external-link fa-pull-right" aria-hidden="true" style = "font-size:15px;"></i></a>
          <br/>
          <p>{{item.chat}}</p>
        </div>
      </div>
    </div>
  </div>
</div>

Я интегрирую угловую страницу в качестве ссылки на другую страницу jsp. Ниже показано, как я добавляю ссылку на свою страницу jsp в Liferay:

var link = "Current Page URL";
link = link + '&email=' + email+'&msgChat=' + message;//appending parameters to the url
<A href= link target="_blank">Message value</A>

Я интегрирую угловую страницу как встроенную ссылку и добавляю к этой ссылке параметры электронной почты и msgChat. Но не знаю, почему, когда я нажимаю на ссылку, моя страница загружается дважды: один раз с параметрами и один раз без параметров.

PS: я использую liferay и пишу интерфейс в файле jsp.


person Srijan Sharma    schedule 30.12.2017    source источник
comment
ни один из этих кодов не имеет ничего общего с загрузкой страницы; это весь код, который выполняется после загрузки страницы, но не влияет на процесс загрузки.   -  person Claies    schedule 30.12.2017
comment
@Claies Итак, вы можете указать мне, какая часть кода поможет?   -  person Srijan Sharma    schedule 30.12.2017
comment
не видя всей вашей кодовой базы, я могу только строить догадки. Что означает интеграция угловой страницы в качестве встроенной ссылки? Он присутствует на какой-то другой странице? Частью какого файла является этот код? Как выглядит ваш HTML? То, что вы дали до сих пор, далеко не минимально воспроизводимый пример вашей установки.   -  person Claies    schedule 30.12.2017
comment
Я не уверен, почему это может произойти, поскольку вы явно определяете «POST», если между вашим POST и неожиданным вторым запросом в вашем приложении не происходит какое-то перенаправление. Проверьте это: stackoverflow.com/questions/33017849/   -  person Harish Vangavolu    schedule 30.12.2017
comment
Может быть, это не взимает плату дважды, она просто взимает плату в первый раз без данных, и вам нужно дождаться запроса на заполнение вашего шаблона из обещания. Вы должны создать угловой маршрут, когда данные будут заполнены, направить его в новое состояние messageFunnel.   -  person Kenry Sanchez    schedule 30.12.2017
comment
github.com/angular-ui/ui-router/wiki/Quick- Ссылка   -  person Kenry Sanchez    schedule 30.12.2017


Ответы (1)


Может быть, это не взимает плату дважды, она просто взимает плату в первый раз без данных, и вам нужно дождаться запроса на заполнение вашего шаблона из обещания. Вы должны создать угловой маршрут, когда данные будут заполнены, направить его в новое состояние messageFunnel.

Вам следует просмотреть этот https://github.com/angular-ui/ui-router/wiki/Quick-Reference

person Kenry Sanchez    schedule 30.12.2017
comment
просмотреть всю документацию? - person Leon; 29.03.2020