내가하려는 것은 ng-click을 사용하여 ng-repeat의 현재 객체를 컨트롤러 기능에 전달하는 것입니다.서비스를 통해 클릭하여 다른 컨트롤러에 전달
<div ng-controller="ScheduleCtrl as vm" >
<div ng-repeat="item in vm.items">
<div ng-click="vm.select(item)">
첫 번째 컨트롤러는 서비스에 따라 등록되며 위에서 언급 한 방법으로 다음과 같이 정의됩니다.
var app = angular.module('ascensionApp');
app.controller("ScheduleCtrl", ["$scope", 'ScheduleService',
function(ScheduleService) {
var vm = this;
vm.select = function(scheduleItem){
ScheduleService.save(scheduleItem);
};
}]);
서비스는 모듈에 등록되며, 저장 메소드를 사용하여 들어오는 객체를 범위로 허용하고 객체를 반환하는 메소드로 다음과 같이 정의됩니다.
app.service('ScheduleService', function() {
var scheduleItem = {};
this.save = function(scheduleItem){
scheduleItem.pop();
scheduleItem.push(scheduleItem);
};
this.show = function(){
return scheduleItem;
};
});
별도의 요소에 대한 컨트롤러가 데이터 액세스를 시도합니다.
<div id="dashboard" ng-controller="DashboardCtrl">
<h1 class="mdl-card__title-text" id="headline">
It's time for {{data.name}}
</h1>
내가 각도에 새로운 해요,하지만 하루 종일 사용자 정의 서비스를 사용하여 연구 한 다음과 같은
app.controller("DashboardCtrl", ["$scope", 'ScheduleService', function($scope, ScheduleService) {
$scope.data = ScheduleService.show();
}]);
는 그 다음 뷰에 표시됩니다.
ScheduleService.save 나는 서비스 방식을 만드는 많은 변화를 시도했지만 하나가 어떤 성공 또는 위의 오류가 발생하지 않는 기능
되지 않습니다 : 지금은 그 오류를 얻고있다. 누군가 내가 뭘 잘못하고 있는지 설명해 주시겠습니까?
정말 고마워요!
이봐, 해 주셔서 감사합니다 그 생각 나게! 약간의 조정이 끝나면 그 방법이 작동하기 시작했습니다. 나는 $ rootscope를 사용하여 첫 번째 컨트롤러의 메서드 내에서 내 두 번째 컨트롤러에 이벤트를 브로드 캐스팅하여 두 번째 컨트롤러 영역에서 업데이트되도록했습니다. –