我想知道在特定路线上显示的视图之间传递数据的最佳方式(按角度),我想避免通过URL传递数据,因为可能有很多传递它,或者需要某种形式的转换成字符串等总而言之,这不是一个好主意。
一个了解这一点的例子:
我有一个创建新的内容视图,该视图显示为空字段,用户可以自由输入他们想要的所有数据。但是在某些情况下,我希望这些字段中的某些字段根据用户在先前视图中的操作预先填充数据。
每个视图都有其自己的控制器。通过服务进行通信可能仍然有效吗?还有其他方法和更简单的方法,因此我们不必照顾数据寿命(即,如果通过服务进行交谈,则必须在读取数据后手动丢弃数据)。
我想知道Angular建议的方式是什么?
是的,对于这种情况,服务或工厂都可以。您也可以使用该服务将先前输入的数据存储在本地存储中。基本上,这是将来进行改进的更好方法。
作为一种更简单的方法,您可以简单地使用$ rootScope。它可以在所有希望的控制器中使用。
只需将其注入控制器或应用程序本身即可。
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
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句