在使用 AngularJS 执行重定向到另一个局部视图时
$location.path('/view2')
是否可以在 $routeParams 中设置自定义对象,然后在控制器中为 view2 检索该对象?
我看到的示例显示了如何通过在 url 中传递一个 ID 来做到这一点 - $location.path('/view2/ID') 然后使用 $routeParams.ID 检索 ID 但是我如何传递任何 javascript 对象?
在使用 AngularJS 执行重定向到另一个局部视图时
$location.path('/view2')
是否可以在 $routeParams 中设置自定义对象,然后在控制器中为 view2 检索该对象?
我看到的示例显示了如何通过在 url 中传递一个 ID 来做到这一点 - $location.path('/view2/ID') 然后使用 $routeParams.ID 检索 ID 但是我如何传递任何 javascript 对象?
使用服务,它们允许您将对象从视图传递到其他视图。
对$location
服务的更改表示对浏览器地址栏的更改,因此它们是基于字符串的。
所以基本上有2个选择:
您将对象转换为与 url 兼容的字符串并将其传递到 url
您将对象存储在数据容器(例如范围或 rootScope)中,更改您的位置,然后再次从数据容器中获取数据。
第二个选项肯定更可靠,但从技术上讲,第一个选项是有效的,所以值得一提。
希望有帮助!