PromisePractiseOne

How promise written in Service effects the controllers and view.

by rahulshivsharan

HTML

<body ng-app="MyApp">
		<div ng-controller="myCtrlOne as one">
			<h2>One</h2>
			<label for="">Stored Value:</label>{{one.myVal | json}} <br/>
			Value: <input  type='text' ng-model='one.myVal.value' />
		</div>
		
		
		
		<div ng-controller="myCtrlTwo as two">
			<h2>Two</h2>
			<label for="">Stored Value:</label>{{two.myVal | json}} <br/>
		</div>
	</body>

JavaScript

angular.module("MyApp",[]);
			(function(){
				angular.module("MyApp").controller("myCtrlOne",myCtrlOne)
									   .controller("myCtrlTwo",myCtrlTwo);
				
				function myCtrlOne(storedValue){
					var obj = this;					
					obj.myVal = undefined;
					
					storedValue.get().then(function(value){
						obj.myVal = value;
					});
					
				};
				
				function myCtrlTwo(storedValue){
					var obj = this;
					obj.myVal = undefined;
					
					storedValue.get().then(function(value){
						obj.myVal = value;
					});
				};
				
				
			})();
			
			(function(){
				angular.module("MyApp").factory("storedValue",storedValue);
				
				function storedValue($q){
					var obj = { get : fn },
						promise = undefined;
					
					return obj;
					
					function fn(){
						return promise || getData();
						
						function getData(){
							promise = $q.when({
								label : 'Hello',
								value : 1000
							});
							
							return promise;
						};
					};
				}
			})();