我想知道在特定路线上显示的 View 之间传递数据的最佳方式(按照 Angular 方式)是什么,我想避免通过 URL 传递数据,因为可能有很多或者需要某种形式的字符串转换等。总而言之,这不是一个好主意。
理解这一点的例子:
我有一个创建新的内容 View ,其中显示空字段,用户可以自由输入他们想要的所有数据。但在某些情况下,我希望其中一些字段根据用户在先前 View 中所做的操作预先填充数据。
每个 View 都有自己的 Controller 。通过服务进行通信可能仍然有效吗?有没有其他更简单的方法,这样我们就不必关心数据生命周期(即,如果我们通过服务进行通信,我们必须在读取数据后手动丢弃数据)。
我想知道 Angular 建议的方法是什么?
最佳答案
是的,服务或工厂就适合这种情况。您还可以将之前输入的数据存储在本地存储中,例如使用该服务。基本上这是 future 改进的更好方法。
作为一种更简单的方法,您可以简单地使用 $rootScope。如果您愿意,它可以在所有 Controller 中使用。
只需将其注入(inject) Controller 或应用程序本身。
app.controller('myCtrl', function($rootScope){
$rootScope.myStoredValues = {...};
});
或
app.run(function($rootScope){
$rootScope.root = $rootScope;
$rootScope.myStoredValues = {...};
// this way you don't need to inject it into controller,
// it will be available there via $scope.root.myStoredValues
});
关于angularjs - 在 ngRoute Controller 之间传递数据的最佳方式(从一个 View 到下一个 View ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486392/