angularjs - 在 ngRoute Controller 之间传递数据的最佳方式(从一个 View 到下一个 View )

标签 angularjs controller ngroute

我想知道在特定路线上显示的 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/

相关文章:

javascript - 使用 Angularjs 的嵌套选项卡

php - getList 的响应应该是一个数组而不是一个对象或 restangular 中的其他东西

javascript - 如何动态加载和编译指令?

javascript - Angular JS + 重定向不起作用

javascript - 使用 Angular 的原生 ngRoute(Angular-route.js v1.3.15) 嵌套 View ?

javascript - Angular ng-repeat,元素外的内容

javascript - Heroku 错误 : page was loaded over HTTPS, 但请求了不安全的脚本 'angular-route.js'

php - Laravel 项目中的按钮是否应该触发 Controller 中的方法,如果是,如何触发

JavaFX - 访问动态创建的选项卡 Controller

javascript - Angularjs ngRoute 不工作