Друзья ..Угловая область не сохраняющая ценность
Для моего понимания того, как работает маршрутизация в Угловом, я создал простое приложение. Это приложение имеет только две страницы: 1. На первой странице будут отображаться все строки таблицы сотрудников. При нажатии на определенную строку вторая страница отобразит форму с данными этого сотрудника.
список, который отображается на первой странице используется следующий код:
<table>
<tr ng-repeat="employee in employees">
<td>{{employee.firstname}} - {{employee. address}}</td>
<td><span ng-click="getSingleEmployeeDetails(employee.id)">Edit</a></td>
</tr>
</table>
Я использую тот же контроллер для обоих этих страниц и этот контроллер выглядит следующим образом:
function EmployeeCtrl($scope,$http,Employee,$location,$routeParams) {
// Get all employee details
var data;
Employee.query().then(function(_data) {
$scope.employees = _data.data;
});
// Get Single Employee Details
$scope.getSingleEmployeeDetails = function(id) {
$scope.employee = scope.employees[id];
$location.path('/editemployee/' + id);
}
}
Однако проблема, с которой я сталкиваюсь, заключается в том, что когда код отправляется в/editemployee/1
по какой-то причине $ scope.employees теряет свои значения.
Другими словами, форма никогда не заполняется деталями сотрудника.
Что я здесь делаю неправильно?
Если у вас одинаковый тип контроллера для двух видов, это не значит, что они являются одним и тем же экземпляром. Таким образом, проблема заключается в каждом моменте изменения углового изменения, который создает новый экземпляр вашего контроллера, который не имеет никакой информации, имевшейся в предыдущем экземпляре. Поэтому вам нужно использовать службу, чтобы иметь синглтон, на который вы можете хранить данные. – shaunhusain
На самом деле, если вы посмотрите на этот пример Джона Линдквиста, он, кажется, использует $ scope одного контроллера в другой при изменении маршрута. Как он может это сделать? http://www.youtube.com/watch?v=5uhZCc0j9RY&list=PLdVInYVbR-1wfi5AnAqhKwXf_PYrscUNU – runtimeZero
Наследование области происходит, если обе области активны в то же время, я полностью рекомендую видео Джона, хотя в egghead.io было мое первое погружение в Угловое и я все еще возвращаюсь совсем немного. – shaunhusain