你好,我有以下服務:
angular.module('vendor').service('ticketService', function() {
var ticketList = [];
var result = false;
var addToCart = function(type, ticket, tSI) {
var data = {}
if (type =='event')
{
data = {
type: type,
tSI: tSI
}
}
if (type =='bus')
{
data = {
type: type,
company: ticket.company,
date: ticket.when,
number: ticket.number || 1,
tSI: tSI
}
}
if (type == 'extra')
{
data = {
type: type,
extra: ticket,
tSI: tSI
}
}
$.ajax({
type: "post",
url: '/cart',
headers: {
'X-XSRF-Token': $("meta[name='csrf_token']").attr("content")
},
data: data,
dataType: 'json',
success: function (data) {
ticket.hasTicket = true;
result = 200;
}
});
}
return {
addToCart: addToCart,
result: result
};
});
現在我把這種服務在我的控制器:
angular.module('vendor').controller('TicketController', ['$http', '$scope', '$rootScope', 'ticketService', '$timeout', function($http, $scope, $rootScope, ticketService, $timeout) {
$scope.addToCart = function(type, ticket, tSI, $index) {
$scope.selectedIndex = $index;
$scope.isWorking = true;
$scope.isReady = false;
ticketService.addToCart(type, ticket, tSI);
$rootScope.$broadcast('TICKET_ADDED', true);
};
$scope.$watch('ticketService.result', function (newVal, oldVal) {
alert(ticketService.result);
if (typeof newVal !== 'undefined') {
if (ticketService.result == 200) {
$scope.isWorking = false;
$scope.isComplete = true;
}
}
});
}]);
當票證加入我希望能夠爲了在這種情況下將結果返回給控制器200,我目前正在嘗試觀察ticketService.result的值,但是當函數完成時$ watch不會執行任何操作。
你在控制檯得到任何錯誤。 Plz檢查一次 – Reena 2015-04-06 12:23:06