1

I have seen various post on stack-overflow and I try to flow, but some mistake I am doing while creating services below is my code kindly help me to find out where I am doing wrong

angular
.module('yolomd', ['ngSanitize']);
app.factory('myplacementdata', function () {
    var mydata = {

      placementdata = [],
      getplacementdataValue:function () {
         return mydata.placementdata; 
      },
      setplacementdataValue: function (data) {
        mydata.placementdata = data;
      }
    }
    return mydata;
});

app.controller('PriorityPlacement',['$scope', '$rootScope','myplacementdata', function($scope, $rootScope,myplacementdata){  
  var response.Data=[{city_name: "Toronto", city_placement_charge: "1799"}, yolomd_verify: "50"];
    myplacementdata.setplacementdataValue=response.Data;
    console.log(myplacementdata.getplacementdataValue);
    //window.location = site_url + 'Overview'
   }]);
app.controller('Overview',['$scope', '$rootScope','$stateParams','myplacementdata', function($scope, $rootScope,myplacementdata){
    console.log(myplacementdata.getplacementdataValue);
   }])
<html lang="en" ng-app="yolomd">
<head>
  <script src="http://205.134.251.196/~examin8/CI/yoloMD/assets/front/js/vendor/angular.min.js"></script>
  </head>
Amit Sharma
  • 192
  • 2
  • 9

2 Answers2

1

First off try changing

myplacementdata.setplacementdataValue=response.Data;

To

 myplacementdata.setplacementdataValue(response.Data);

And where do u get the response.Data from?

try using a factory instead. like so.

app.factory('myplacementdata', function () {
    var mydata = {

      placementdata = [],
      getplacementdataValue:function () {
         return mydata.placementdata; 
      },
      setplacementdataValue: function (data) {
        mydata.placementdata = data;
      }
    }
    return mydata;
});
Palm
  • 38
  • 4
1

Please note that :

setplacementdataValue()
getplacementdataValue()

These are methods and not variables.

So use them as :

setplacementdataValue([Your Array Input]);
console.log(getplacementdataValue());

Note the parenthesis.

Also in your set method, use a different input parameter name.

var app = angular.module("myApp", []);

app.controller('PriorityPlacement', ['myplacementdata',
  function(myplacementdata) {
    myplacementdata.setplacementdataValue([1, 2, 3]);
    console.log(myplacementdata.getplacementdataValue());
  }
]);

app.controller('Overview', ['myplacementdata',
  function(myplacementdata) {
    console.log(myplacementdata.getplacementdataValue());
  }
]);

app.service('myplacementdata', function() {
  var placementdata = [];
  this.getplacementdataValue = function() {
    return placementdata;
  }
  this.setplacementdataValue = function(myplacementdata) {
    placementdata = myplacementdata;
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
  <div ng-controller="PriorityPlacement">
  </div>
  <div ng-controller="Overview">
  </div>
</div>
Himanshu Tyagi
  • 5,201
  • 1
  • 23
  • 43