getting and setting value in factory in angualrjs

后端 未结 6 1241
执笔经年
执笔经年 2020-12-12 04:40

This is my factory:

.factory(\'userService\',()){
  var user = {};
  return {

  getFirstname : function () {
    return user.firstname;
  },

  setFirstname         


        
6条回答
  •  無奈伤痛
    2020-12-12 05:18

    In some case $watch is not working with factory object. Than you may use events for updates.

     app.factory('userService',['$rootScope',function($rootScope){
      var user = {};
      return {
    
      getFirstname : function () {
        return user.firstname;
      },
    
      setFirstname : function (firstname) {
        user.firstname = firstname;
        $rootScope.$broadcast("updates");
      }
    
    }
    }]);
    app.controller('MainCtrl',['userService','$scope','$rootScope', function(userService,$scope,$rootScope) {
      userService.setFirstname("bharat");
      $scope.name = userService.getFirstname();
      $rootScope.$on("updates",function(){
        $scope.name = userService.getFirstname();
      });
    }]);
    
    app.controller('one',['userService','$scope', function(userService,$scope) {
      $scope.updateName=function(){
        userService.setFirstname($scope.firstname);
      }
    }]);
    

    Here is a working example

提交回复
热议问题