두 컨트롤러간에 $ scope 개체를 공유하는 동안 문제가 발생했습니다.
컨트롤러 'IssueBookCtrl'에서 책 개체 요소 값을 이와 같이 업데이트합니다.
$ scope.books [i] .issued = true;
그럼 $ scope 객체를 컨트롤러 'BookListCtrl_Librarian'과 공유하기 위해 $ emit 서비스를 사용하고 있습니다.
$ scope. $ emit ('update_parent_controller', $ scope.books);
하지만 컨트롤러 'BookListCtrl_Librarian'을 사용하는보기를 실행하면 업데이트 된 개체가 표시되지 않습니다.
Controllers.controller('BookListCtrl_Librarian', ['$scope','$http','$location','$rootScope','BookData',
function ($scope, $http ,$location, $rootScope , BookData) {
$http.get('data/books.json').success(function(data) {
if($rootScope.books==='undefined'){
$rootScope.books = BookData.getData();
}
$scope.books = data;
});
$scope.options = ['bookId', 'cost'];
$scope.$on("update_parent_controller", function(event, books){
$scope.books = books;
});
$scope.issue = function(bookId) {
for (var i = 0, len = $scope.books.length; i < len; i++) {
if ($scope.books[i].bookId == bookId) {
$rootScope.book = $scope.books[i];
break;
}
}
$location.path('/issue/'+bookId);
}
$scope.return = function (bookId) {
for (var i = 0, len = $scope.books.length; i < len; i++) {
if ($scope.books[i].bookId == bookId) {
$rootScope.book = $scope.books[i];
break;
}
}
$location.path('/return/'+bookId);
}
$scope.backToLogin = function() {
$location.path("/main");
}
}]);
Controllers.controller('IssueBookCtrl', ['$scope','$rootScope','$http','$routeParams','$location',
function ($scope,$rootScope, $http, $routeParams, $location) {
var Id=$routeParams.bookId;
$http.get('data/books.json').success(function(data) {
$scope.books = data;
});
$scope.issue = function(Id) {
alert("issued");
for (var i = 0, len = $scope.books.length; i < len; i++) {
if ($scope.books[i].bookId === Id) {
$scope.books[i].issued = true;
$scope.$emit('update_parent_controller', $scope.books);
$location.path('/home/librarian');
break;
}
}
}
}]);
이 나를 인도 해주십시오
controller.js는, 어떤 도움이 많이 감사합니다.
덕분에 당신은 모델을 변경 한 후 요약을 강제로 시도 할 수