AngularJS 无聊知识点

整理以前笔记时,发现几个简单的无聊的AngularJS知识点。

  • 实现修改 URL, 不刷新页面
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    `use strict`
    angular.module("App")
    .run(function($rootScope, $route, $location, $routeParams) {
    // 重写 $location.path 实现修改 url, 但不刷新页面。
    var original = $location.path;
    $location.path = function (path, reload) {
    if (reload === false) {
    var lastRoute = $route.current;
    var un = $rootScope.$on('$locationChangeSuccess', function () {
    $route.current = lastRoute;
    un();
    });
    }
    return original.apply($location, [path]);
    };
    });
  • 统计 angularJSwatchers
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    (function () {
    var root = $(document.getElementsByTagName('body'));
    var watchers = [];
    var f = function (element) {
    if (element.data().hasOwnProperty('$scope')) {
    angular.forEach(element.data().$scope.$$watchers, function (watcher) {
    watchers.push(watcher);
    });
    }
    angular.forEach(element.children(), function (childElement) {
    f($(childElement));
    });
    };
    f(root);
    console.log(watchers.length);
    })();

只是想找个地方记录一下。。。