美文网首页
AngularJS 基于 factory,实现页面的跳转和传参(

AngularJS 基于 factory,实现页面的跳转和传参(

作者: 全栈开发之道 | 来源:发表于2018-01-02 14:12 被阅读0次

    背景

    上一章讲述了 AngularJS 基于 ui-router,实现页面的跳转和传参(一)

    本章讲述,AngularJS基于 factory ,实现页面的跳转和传参。

    应用场景: 如果你想开个店,需要填写很多信息,才能提交认证。这就需要多个页面,引导用户从头到尾,同时,后一个页面要显示前面所有页面填写的信息。 这时候,用factory传参是比较合理的选择。

    代码示例:

    创建 app.js 文件,构建 factoryController 方法:

    // app.js 
    
    var app = angular.module('myApp', []);
     app.factory('testFactory', function(){
       var testObject = [];
       var _setter = function (data) {
          testObject.push(data);
        };
         var _getter = function () {
          return testObject;
        };
         return {
          setter: _setter,
          getter: _getter
        }               
    });
    
    app.controller('InputCtrl', function ($scope, testFactory) {
          $scope.addInput = function() {
          testFactory.setter($scope.input);
           $scope.input = {
            name: '',
            age: null,
            title: ''
          };
        };
    });
    
    app.controller('OutputCtrl', function ($scope, testFactory) {
        $scope.persons = testFactory.getter();
        console.log( "persons=" + $scope.persons) ;
    });
    
    构建视图文件

    创建 index.html 视图文件。在这个示例中,只需要一个视图文件和一个控制器文件。

    
    <!DOCTYPE html>
    <html>
    <head>
        <title> AngularJS factory example  </title>
     <link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css' /> 
     <script  type="text/javascript" src= "http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js" >
     </script>
    
     <script  type="text/javascript"  src= "http://apps.bdimg.com/libs/angular-ui-router/0.2.15/angular-ui-router.js" > 
     </script>
     <script type="text/javascript" src="app.js" >   </script>
    </head>
    
    <body ng-app = "myApp">
     <div class ="container" >
      <div  ng-controller="InputCtrl">
        <h2>填写信息</h2>
        
        <form  ng-submit="addInput()"  >
          <input type="text" ng-model="input.name"  size="30"
                 placeholder="输入员工姓名"  class="form-control">
    
          <input type="number" ng-model="input.age"  size="30"
                 placeholder="输入员工年龄" class="form-control" >
    
          <input type="text" ng-model="input.title"  size="30"
                 placeholder="输入员工职位" class="form-control" >
    
          <input class="btn-primary" type="submit" value="添加">
    
        </form>
      </div>
           <h2> 员工列表 </h2>
      <div  ng-controller="OutputCtrl">
       <ul>
          <li ng-repeat="p in persons">
            {{p.name}}, {{p.age}}, {{p.title}}
          </li>
        </ul>
      </div>
       </div>
      </body>
    </html>
    
    

    这里要特别注意:

    <form ng-submit="addInput()" >
    这是要触发表单的提交方法。 通过ng-submit 提交form中数据。

    运行结果

    基于 factory 的页面跳转

    AngularJS 基于 ui-router,实现页面的跳转和传参(一)

    参考书: 《 全栈开发之道:MongoDB+Express+AngularJS+Node.js

    更多全栈技术,请关注微信公众号: “全栈工程师的早读课”,每天早8:00 准时推送技术文章。

    相关文章

      网友评论

          本文标题:AngularJS 基于 factory,实现页面的跳转和传参(

          本文链接:https://www.haomeiwen.com/subject/eevfnxtx.html