控制器可以通过以下几种方式实现:
// 创建一个共享服务
app.service('sharedService', function() {
var sharedObject = {};
return {
setObject: function(obj) {
sharedObject = obj;
},
getObject: function() {
return sharedObject;
}
};
});
// 在发送对象的控制器中设置对象
app.controller('SenderController', function($scope, sharedService) {
var obj = { name: 'John', age: 25 };
sharedService.setObject(obj);
});
// 在接收对象的控制器中获取对象
app.controller('ReceiverController', function($scope, sharedService) {
$scope.sharedObject = sharedService.getObject();
});
// 在发送对象的控制器中广播事件
app.controller('SenderController', function($scope, $rootScope) {
var obj = { name: 'John', age: 25 };
$rootScope.$broadcast('objectUpdated', obj);
});
// 在接收对象的控制器中监听事件
app.controller('ReceiverController', function($scope, $rootScope) {
$rootScope.$on('objectUpdated', function(event, obj) {
$scope.sharedObject = obj;
});
});
// 在发送对象的控制器中导航到目标控制器,并传递对象作为路由参数
app.controller('SenderController', function($scope, $location) {
var obj = { name: 'John', age: 25 };
$location.path('/receiver/' + encodeURIComponent(JSON.stringify(obj)));
});
// 在接收对象的控制器中获取路由参数并解析为对象
app.controller('ReceiverController', function($scope, $routeParams) {
var obj = JSON.parse(decodeURIComponent($routeParams.obj));
$scope.sharedObject = obj;
});
这些方法可以根据具体的需求选择使用。在实际开发中,根据项目的复杂性和需求的灵活性,选择合适的方式来传递对象。
领取专属 10元无门槛券
手把手带您无忧上云