我想使用工厂从一个页面(文本字段和提交按钮)中获取信息,将其放入一个数组中,然后从该数组中读取以将其发布到另一个页面中。这是我的代码片段。



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





我知道我可能还差得远,但是在这个阶段,我什至不知道是否有任何信息被添加到数组中。

最佳答案

尝试使用以下代码获取来自setgetfactory数据。
单击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>

09-20 22:16