0
레일스의 다른 뷰에서 두 컨트롤러를 연결하는 방법에 대한 팁이 필요합니다. 새 탭의 항목을 클릭하고 장바구니에 항목을 추가 할 때 색인에 장바구니와 장바구니가 있습니다.이 항목을 원하는 장바구니에 추가 할 수 있습니다.다른보기의 Angularjs 통신 컨트롤러 - 레일
app.controller('LineItemsController', ['$scope', '$rootScope', '$controller', 'LineItems',
function($scope, $rootScope, $controller, LineItems) {
$controller('CartsController', {
$scope: $scope
});
$scope.fetchLineItems = function() {
LineItems.get({
cartId: cartId
}).then(
function(results) {
$scope.lineItems = results;
},
function(error) {}
)
};
$scope.fetchLineItems();
$scope.$on('scanner-started', function(event, args) {
console.log("alert");
$scope.fetchLineItems();
});
}
]);
app.controller('LineItemController', ['$scope', '$rootScope', '$controller', 'LineItem',
function($scope, $rootScope, $controller, LineItem) {
$controller('LineItemsController', {
$scope: $scope
});
$scope.addItem = function() {
new LineItem({
itemId: window.Id
}).create().then(
function(results) {
$scope.linkUpdated = true;
$rootScope.$broadcast('scanner-started');
},
function(error) {
$scope.errors = true;
$scope.linkUpdated = false;
}
)
};
}
]);
app.factory('LineItem', ['railsResourceFactory',
function(railsResourceFactory) {
return railsResourceFactory({
url: '/items/{{itemId}}/line_items',
title: 'line_item'
});
}
]);
app.factory('LineItems', ['railsResourceFactory',
function(railsResourceFactory) {
return railsResourceFactory({
url: '/carts/{{cartId}}/line_items',
title: 'line_item'
});
}
]);
내 코드는 $ broadcast와 $ on을 추가했으나 색인보기가 아닌 내 프로그램보기에서만 작동합니다.
$ scope refresh 같은 것이 있습니까, 아니면 내 색인에 줄 수있는 것이 있습니까?