Angularjs 通过服务将单击时的对象传递给另一个控制器

Angularjs 通过服务将单击时的对象传递给另一个控制器,angularjs,angular-services,Angularjs,Angular Services,我试图做的是使用ng click将ng repeat中的当前对象传递给控制器函数 <div ng-controller="ScheduleCtrl as vm" > <div ng-repeat="item in vm.items"> <div ng-click="vm.select(item)"> 服务注册到模块,并使用save方法和返回对象的方法定义如下 app.service('ScheduleService', f

我试图做的是使用ng click将ng repeat中的当前对象传递给控制器函数

<div ng-controller="ScheduleCtrl as vm" >               
<div ng-repeat="item in vm.items">   
<div ng-click="vm.select(item)">
服务注册到模块,并使用save方法和返回对象的方法定义如下

app.service('ScheduleService', function() {

var scheduleItem = {};


this.save = function(scheduleItem){
    scheduleItem.pop();
    scheduleItem.push(scheduleItem);
};

this.show = function(){
    return scheduleItem;
};
});
单独元素的控制器尝试访问数据

app.controller("DashboardCtrl", ["$scope", 'ScheduleService', function($scope, ScheduleService) {
    $scope.data = ScheduleService.show();
}]);
然后,它将显示在视图上,如下所示:

<div id="dashboard" ng-controller="DashboardCtrl">
<h1 class="mdl-card__title-text" id="headline">
                        It's time for {{data.name}} 
</h1>

到了{{data.name}的时间了
我是Angular的新手,但整天都在使用定制服务进行研究。现在我得到的错误是:

ScheduleService.save不是一个函数

我尝试了许多创建服务方法的变体,但要么没有获得任何成功,要么出现上述错误。有人能解释一下我做错了什么吗


非常感谢你

ScheduleService未定义,这是由于控制器中存在错误

当您声明控制器并指定要注入的对象的名称时,控制器函数必须以相同的顺序将这些依赖项作为函数参数列出,如下所示:

app.controller("ScheduleCtrl", ["$scope", 'ScheduleService', 

function($scope, ScheduleService) {

由于控制器中存在错误,
ScheduleService
未定义

当您声明控制器并指定要注入的对象的名称时,控制器函数必须以相同的顺序将这些依赖项作为函数参数列出,如下所示:

app.controller("ScheduleCtrl", ["$scope", 'ScheduleService', 

function($scope, ScheduleService) {

嘿,谢谢你提醒我!稍作调整后,这些方法开始工作。我必须使用$rootscope并在第一个控制器的方法中向我的第二个控制器广播一个事件,以便在第二个控制器区域更新它。嘿,谢谢你提醒我!稍作调整后,这些方法开始工作。我必须使用$rootscope并在第一个控制器的方法中向我的第二个控制器广播一个事件,以便在第二个控制器区域更新它。