朋友..Angularjs范围不保留价值
为了解我如何在Angular中工作,我创建了一个简单的应用程序。此应用程序只有两个页面: 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
实际上,如果你看John Lindquist的这个例子,他似乎在改变路线时将一个控制器的$ scope应用到另一个控制器中。他如何能够做到这一点? http://www.youtube.com/watch?v=5uhZCc0j9RY&list=PLdVInYVbR-1wfi5AnAqhKwXf_PYrscUNU – runtimeZero
范围继承发生,如果两个范围同时活跃,我完全推荐约翰的视频,虽然在egghead.io,是我第一次陷入Angular而且我还是回去了很多。 – shaunhusain