AngularJS,什么样的$范围?

时间:2016-02-25 08:00:14

标签: angularjs

我已经开始使用角度,但我在角度方面遇到了一些问题。 What kind of $scope in this screen? and how to get 'title' in that. 这是我的代码。

define(['angularAMD', 'angular-route'], function(angularAMD) {
  var app = angular.module("coreModule", ['ngRoute']);
  app.config(['$routeProvider', '$locationProvider',
    function($routeProvider, $locationProvider) {
      $routeProvider
        .when("/home", angularAMD.route({
          templateUrl: 'home.html',
          controller: 'HomeCtrl',
          title: 'Home',
          controllerUrl: 'ctrl/home',
        })).
      when("/list", angularAMD.route({
        templateUrl: 'views/news.html',
        controller: 'newsCtrl',
        controllerUrl: 'ctrl/news'
      })).
      otherwise({
        redirectTo: '/home'
      });
      $locationProvider.html5Mode({
        enabled: true,
        requireBase: true,
      });
    }
  ]);

  app.run(['$rootScope', '$route',
    function($rootScope, $route) {
      $rootScope.$on('$routeChangeSuccess', function() {
        console.log($rootScope);
      });
    }
  ]);

  app.factory('Page', function() {
    var title = 'default';
    return {
      title: function() {
        return title;
      },
      setTitle: function(newTitle) {
        title = newTitle;
        console.log(title);
      }
    };
  });


  return angularAMD.bootstrap(app);
});

我想从控制器那里获得'头衔'。 任何的想法?谢谢

1 个答案:

答案 0 :(得分:0)

我仍然不确定你要做什么,但这是我的猜测。

如果您尝试从控制器设置页面标题,那么我就是这样做的。那不是从控制器设置的。我会像你已经完成的那样将它设置在状态上,然后在每次状态变化时选择它。

aspStratMed.run(['$rootScope', function ($rootScope)
{
    $rootScope.$on('$stateChangeStart', function (event, toState)
    {
        if (toState.data && toState.data.pageTitle)
            $rootScope.pageTitle = toState.data.title;
    });

然后在HTML中只需使用每个你需要页面标题的地方

{{pageTitle}}