Как передать информацию о массиве, используя фабрику в Javascript? - PullRequest
0 голосов
/ 30 октября 2018

Используя фабрику, я хочу получить информацию с одной страницы (текстовые поля и кнопку отправки), поместить ее в массив и прочитать из этого массива, чтобы разместить ее на другой странице. Вот фрагмент моего кода.

app.factory("service", function(){
    var serv = {};
    serv.arr = [];
    serv.add = (title, name, post, tag) => serv.arr.push({
        "title" : title, "name" : name, "post" : post, "tag" : tag
    });
    return serv;
});

app.controller("createCtrl", ["$scope", "service", function($scope, service) 
{
    display = () => service.add($scope.title, $scope.name, $scope.post, 
    $scope.tag);
        console.log(service.arr);
}]);

app.controller("newsCtrl", ["$scope", "service", function($scope, service){
    $scope.newsPage = "News";
    $scope.array = service.arr;
}]);

Я знаю, что я, вероятно, далеко, но на этом этапе я даже не могу сказать, добавляется ли какая-либо информация в массив.

1 Ответ

0 голосов
/ 30 октября 2018

Попробуйте следующий код для set & get данных от factory. Нажмите SAVE DATA и затем GET DATA кнопки, чтобы увидеть действия

(function(ng, app){
    app = angular.module('app', [])
    


app.factory("service", function(){  
    
var serv = {};
var arr = [];
    return {
  
      add : function (title, name, post, tag) {
        arr.push({
            "title" : title, "name" : name, "post" : post, "tag" : tag
           });
      },
    
      get : function (firstname) {
        return arr[0];
      }
    
    }
});

    
app.controller("createCtrl", ["$scope", "service", function($scope, service) 
{
    $scope.display = function(){
       service.add($scope.title, $scope.name, $scope.post, $scope.tag); 
    };
}]);

app.controller("newsCtrl", ["$scope", "service", function($scope, service){
    $scope.newsPage = "News";
   
    $scope.getData = function(){
       $scope.array = service.get();
    };        
}]);


}(angular));
input {
 margin: 5px;
}
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
  <body>
    
    <div ng-controller="createCtrl as main">
      <h1>create Ctrl</h1>
    <input ng-model="title" placeholder="title" /><br/>

      <input ng-model="name" placeholder="name" /><br/>

      <input ng-model="post" placeholder="post" /><br/>

      <input ng-model="tag" placeholder="tag" /><br/>
      <button ng-click="display()">  SAVE DATA </button>     
    </div>

<br/> <hr/>

    <div ng-controller="newsCtrl">
      <h2>news Ctrl </h2>
      <button ng-click="getData()">  GET DATA </button>

      <p> title : {{array.title}} </p>
      <p> name : {{array.name}} </p>
      <p> post : {{array.post}} </p>
      <p> tag : {{array.tag}} </p>
      
    </div>
    
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...