2016-03-22 18 views
0

Fabrikada döndürülen obj değerleri Yerel değişkenlere veya işlevlere nasıl erişebilir. Modelimi fabrikada veya hizmette yerel değişken veya işlev olarak kapsüllemek istediğimi varsayalım, ancak bunları geri döndürme nesnesinin değerleri olarak döndürmek istiyorum. Ama bunu yaparken, bu değişkeni tanımlamam diye bir hata alıyorum. Herhangi biri bana bu problemde yardımcı oluyor.Fabrika Hizmetleri dönen Nesneler

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)} 
    }); 

Bu benim yapacağını nasıl bir hatayı

cevap

0

verir. Bu, arkadaşların nasıl listeleneceğini ve ekleneceğini gösteren basit bir örnektir. See it on 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>