ฉันกำลังใช้ข้อมูลบางส่วนที่มาจากบริการ RESTful ในหลาย ๆ เพจ ดังนั้นฉันจึงใช้โรงงานเชิงมุมสำหรับสิ่งนั้น ดังนั้นฉันต้องได้รับข้อมูลหนึ่งครั้งจากเซิร์ฟเวอร์และทุกครั้งที่ฉันได้รับข้อมูลด้วยบริการที่กำหนดนั้น เช่นเดียวกับตัวแปรส่วนกลาง นี่คือตัวอย่าง:
var myApp = angular.module('myservices', []);
myApp.factory('myService', function($http) {
$http({method:"GET", url:"/my/url"}).success(function(result){
return result;
});
});
ในคอนโทรลเลอร์ของฉันฉันใช้บริการนี้ในฐานะ:
function myFunction($scope, myService) {
$scope.data = myService;
console.log("data.name"+$scope.data.name);
}
มันทำงานได้ดีสำหรับฉันตามความต้องการของฉัน แต่ปัญหาคือเมื่อฉันโหลดซ้ำในหน้าเว็บบริการจะถูกเรียกอีกครั้งและขอเซิร์ฟเวอร์ หากอยู่ระหว่างฟังก์ชันอื่น ๆ ที่ดำเนินการซึ่งขึ้นอยู่กับ "บริการที่กำหนดไว้" จะทำให้ข้อผิดพลาดเช่น "บางสิ่ง" ไม่ได้กำหนด ดังนั้นฉันต้องการรอในสคริปต์ของฉันจนกว่าบริการจะโหลด ฉันจะทำเช่นนั้นได้อย่างไร? มีการทำ angularjs หรือไม่?