• ui-router实现返回上一页功能


    angular.module('ConsoleUIApp', ['ui.router','ui.bootstrap'])
            .config(function ($stateProvider, $urlRouterProvider, $httpProvider) {
    
                // For any unmatched url, redirect to /state1
                $urlRouterProvider.otherwise("/home");
    
                $stateProvider
                    .state('home', {
                        url: "/home",
                        templateUrl: "views/home.html",
                        controller: 'HomeCtrl'
                    })
            })
            .run(function($rootScope, $state, $stateParams) {
               // previous state handling
          $rootScope.previousState = {};
          $rootScope.$on('$stateChangeSuccess',  function(event, toState, toParams, fromState, fromParams) {
            // store previous state in $rootScope
           $rootScope.previousState.name = fromState.name;
             $rootScope.previousState.params = fromParams;
          });
            });

    back-button directive :

    yourModule.directive('backButton', [
        '$rootScope',
        '$state',
        '$parse',
    function($rootScope, $state, $parse) {
        return {
            restrict: 'EA',
            link: function(scope, el, attrs) {
                var defaultState
                  , defaultStateParams;
    
                el.click(function() {
                    var stateName
                      , stateParams;
    
                    if ($rootScope.previousState.name) {
                        stateName = $rootScope.previousState.name;
                        stateParams = $rootScope.previousState.params;
                    }
                    else {
                        stateName = defaultState;
                        stateParams = defaultStateParams;
                    }
    
                    if (stateName)
                        $state.go(stateName, stateParams);
                });
    
                attrs.$observe('defaultState', function() {
                    defaultState = attrs.defaultState;
                });
                attrs.$observe('defaultStateParams', function() {
                    defaultStateParams = $parse(attrs.defaultStateParams)(scope);
                });
    
                $rootScope.$watch('previousState', function(val) {
                    el.attr('disabled', !val.name && !defaultState);
                });
            }
        };
    }]);

     https://github.com/angular-ui/ui-router/issues/92

  • 相关阅读:
    《Java数据结构与算法》笔记CH43用栈实现分隔符匹配
    《Java数据结构与算法》笔记CH2无序数组
    《Java数据结构与算法》笔记CH3简单排序
    《Java数据结构与算法》笔记CH41栈的实现
    《Java数据结构与算法》笔记CH42用栈实现字符串反转
    java流程控制.3循环结构
    java方法.1方法的定义和调用
    java流程控制.1scanner
    java方法.2方法的重载
    java方法.3递归
  • 原文地址:https://www.cnblogs.com/ImaY/p/7127013.html
Copyright © 2020-2023  润新知