почему запрос страницы не отправляется на сервер при маршрутизации просмотров каждый раз в угловых js?

Я работаю в угловом демонстрационном проекте JS, где я использую UI Router для маршрутизации. В моем проекте есть два вида view1 а также view2. Для навигации я использовал дизайн вкладок, чтобы пользователь мог переходить от одного представления к другому. В view1 пользователь должен вставить свой адрес электронной почты а также пароль и после нажатия кнопки отправки я сохраняю эту информацию в MySQL базы данных с помощью HTTP сервис угловой. После этого, когда я нажал view2 он показывает все адреса электронной почты пользователя и пароль и работает нормально. Но если я вернусь к view1 и зарегистрирую другого пользователя и вернусь к view2, то эта новая информация о пользователе не будет обновлена, и предыдущие данные будут показаны. Для отображения информации о пользователях из базы данных я использовал php.

Итак, я думаю, что сначала, когда мы щелкали по view2, запрос страницы отправлялся на сервер, и информация о пользователе отображалась в view2 после прихода с сервера, он превращался в обычный html. После этого, когда мы добавили новые данные в базу данных mysql и нажали view2, запрос не отправляется на сервер, в результате я не получил вновь добавленную информацию о пользователе.

Я не знаю, прав я или нет, но мне нужно решить эту проблему. Пожалуйста, помогите мне. Как я могу найти обновленные данные из базы данных MySQL.

Вы можете проверить эту проблему здесь
[http://www.iamcreative.comlu.com/angular/][1]

Вот мой код view1.php

<div  ng-controller="Controller1">

<form role="form">
<div class="form-group">
<label for="email">Email address:</label>
<input type="email" class="form-control" id="email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>

<button ng-click="submitForm();"type="submit" class="btn btn-default">Submit</button>

<div class="form-group">
<label id="user-status"></label>

</div>
</form>
</div>

Вот мой код view2.php

<?php
include '../server_side/database_lib/DbHelper.php';
$db=new DbHelper();
$result=$db-> selectAllRow(Constants::$TABLE_USER_INFO,Constants::$USER_INFO_ID, 'DESC');
?>
<div class="container" ng-controller="Controller2">

<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Email</th>
<th>Password</th>
</tr>
</thead>
<tbody>

<?php
foreach($result['data'] as $value)
{
echo "<tr>";
echo "<td>".$value["email"]."</td>"   ;
echo "<td>".$value["password"]."</td>"  ;
echo "<tr/>";
}

?>
</tbody>
</table>
</div>
</div>

Вот мой код контроллера

angular.module('myApp.controllers', []).controller('MainController',function($rootScope,$scope,$location,$state){
$scope.navigate=function(sub)
{
if(sub=="view1")
{
$state.go('view1');
}
else if(sub=="view2"){

$state.go('view2');

}

}
}).controller('Controller1',function($rootScope,$scope,$location,$state,regService){


$scope.submitForm=function(){
var email=  document.getElementById("email").value;
var password=   document.getElementById("pwd").value;


if(password!="" && email !="")
{


var data={"email":email,"password":password};
var promise =  regService.getRegistration(data);
promise.then(
function success(payload) {

var status = payload.data.status;
if(status==2)
{
document.getElementById("user-status").innerHTML=payload.data.msg;
}
else if(status==0)
{
document.getElementById("user-status").innerHTML=payload.data.msg;
}
else if(status==1)
{
document.getElementById("user-status").innerHTML="Registration Successful";
}

},
function error(errorResponse) {
//alert('Error connecting server'+ errorResponse);
alert("Error")
}
);

}
else{

document.getElementById("user-status").innerHTML="*Please insert all the field";

}

}
}).controller('Controller2',function($rootScope,$scope,$location,$state){

});

и index.html такой код

 <section>

<div class="container-fluid">
<div class="row">

<div class="col-md-12">

<div class="tab-bar">
<ul>

<li><a class="tab" ng-click="navigate('view1');" >View 1</a></li>
<li><a class="tab" ng-click="navigate('view2');" >View 2</a></li>


</ul>
</div>

</div>
</div>

<div class="row">

<div class="col-md-12">
<div ui-view ></div>

</div>

</div>
</div>
</section>

Пожалуйста, помогите мне, что я могу сделать?

0

Решение

Этот код имеет так много вещей, которые не являются лучшими практиками при использовании Angular.

Я бы порекомендовал вам почитать, как использовать angualr в вашем проекте.

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

  1. Вы используете javascript для манипулирования контентом на своей странице, это, как правило, не очень хорошая идея, вы должны позволить angular обрабатывать как можно больше манипуляций с DOM.

document.getElementById ( «пользователь-статус») innerHTML = payload.data.msg.

  1. Вы поместили серверный код в угловые UI-шаблоны. Это не то, как вы используете шаблоны, по умолчанию angular будет загружать только шаблоны и кэшировать его, любые последующие запросы на шаблон будут обслуживаться из кэша. Запросы на стороне сервера всегда должны быть в угловых сервисах.

    1. Это незначительная проблема по сравнению с другими, но вам не нужны теги ng-controller при использовании представления UI, контроллер, который должен быть запущен, должен быть упомянут в конфигурации ui-view, это приведет к тому, что сервер будет вызываться дважды после выдачи № 2 исправлен.

Для вашей конкретной проблемы вы сможете решить ее, исправив проблему №2 и переместив ее в угловой код вместо шаблона.

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector