Фабрика Услуг, возвращающая Объект

0

Как значения obj, возвращаемые на заводе, могут обращаться к Локальным переменным или функциям. Предположим, я хочу инкапсулировать мою модель как локальную переменную или функцию на фабрику или службу, но я хочу вернуть их как значения возвращаемого объекта. Но когда я делаю это, я получаю ошибку, говоря, что переменная не определена. Может ли кто-нибудь помочь мне в этой проблеме.

app.factory('myFactory',function(){
  var listofFriends=["john","ajay",.....];
  var addFriend=function(name){
         if(name!==""){
          listofFriends.push(name);
            };
         return listofFriends;};
   return{Friends:listofFriends,addfriend:addFriend(name)}
   });

дает ошибку

Теги:
factories

1 ответ

0

Вот как я это сделаю. Это простой пример того, как перечислить и добавить друзей. См. Его на codepen

<script src="https://code.angularjs.org/1.4.9/angular.min.js"></script>

<div ng-app="myApp" ng-controller="MyController">
  my friends: {{friends}} <br>
  <input ng-model="newFriendName" type="text" />
  <button ng-click="addNewFriend(newFriendName)">Add</button>
</div>

<script>
  var app = angular.module('myApp', []);

  app.factory("myService", function(){
    var serviceObject = {};
    var listOfFriends = ["john","ajay","amy"];

    serviceObject.getFriends = function(){ return listOfFriends; }
    serviceObject.addFriend = function(name){ if (name) listOfFriends.push(name) };

    return serviceObject;
  });

  app.controller("MyController", ["$scope", "myService", function($scope, myService){
    $scope.friends = myService.getFriends();
    $scope.newFriendName = "";

    $scope.addNewFriend = function(name){
      myService.addFriend(name);
      $scope.friends = myService.getFriends();
    }
  }]);
</script>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню