在尝试学习AngularJS结构的最佳实践时,我在多个地方读到,应将局部视图作为指令实现,这就是我为应用程序标头所做的工作。

现在,对于我的特定标题,我有一个后退按钮,仅当不在主页上时,该按钮才可见。最终使其正常工作后,我不确定我对自己的解决方案是否满意。例如,它不使用var vm = this;的controllerAs方法,如果可以避免的话,我绝对不要让它具有专用的作用域/控制器。

这是我的headerView的指令代码:

(function () {

    'use strict';

    function appHeader () {
        return {
            restrict: 'E',
            templateUrl: 'shared/header/headerView.html',
            controller: function ($scope, $route, $location) {
                $scope.homeUrl = 'start/' + $route.current.params.id;
                $scope.isHomeUrl = function () {
                    if($location.path() == $scope.homeUrl) {
                        return true;
                    }
                    return false;
                };
                $scope.backClick = function() {
                    window.history.back();
                    return false;
                };
            }
        }
    };

    angular.module('myApp').directive('appHeader', appHeader);

})();


您如何看待带有后退按钮的标题,您会以其他方式执行此操作吗?有什么建议吗?

最佳答案

满足您的需求,Angular UI Router比使用指令更好。

看看这个question,它写得很好,还有一个正在工作的插件!

至于controllerAs方法论,请看这个stackoverflow question

10-05 20:52
查看更多