Я работаю в угловом демонстрационном проекте 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>
Пожалуйста, помогите мне, что я могу сделать?
Этот код имеет так много вещей, которые не являются лучшими практиками при использовании Angular.
Я бы порекомендовал вам почитать, как использовать angualr в вашем проекте.
Я упомяну несколько вещей, которые я могу видеть сразу, но этот список не является исчерпывающим, вам нужно прочитать о том, как работает angular и его лучшие практики ..
document.getElementById ( «пользователь-статус») innerHTML = payload.data.msg.
Вы поместили серверный код в угловые UI-шаблоны. Это не то, как вы используете шаблоны, по умолчанию angular будет загружать только шаблоны и кэшировать его, любые последующие запросы на шаблон будут обслуживаться из кэша. Запросы на стороне сервера всегда должны быть в угловых сервисах.
Для вашей конкретной проблемы вы сможете решить ее, исправив проблему №2 и переместив ее в угловой код вместо шаблона.
Однако, как я уже упоминал, пожалуйста, прочитайте о том, как использовать угловые и каковы лучшие практики.
Других решений пока нет …