在路线变更的ng-view之外编辑HTML

时间:2016-02-23 20:54:02

标签: html angularjs angularjs-ng-route angular-controller

我想使用路由信息在路由更改时更改导航栏中的某些HTML。我几乎可以使用下面的代码,但是当到达DOM时,数据不会被解析为HTML。我尝试使用$sce服务,但这并没有真正让我在任何地方。

如果在路线更改时有任何其他(更好)的方法来编辑HTML,请告诉我。

HTML

<nav>
  <div ng-controller="BrandCtrl">
    <div class="nav-brand">
      {{brand}}
    </div>
  </div>
</nav>

<div ng-view></div>

JS

var app = angular.module("app", ['ngRoute']);

app.controller("BrandCtrl", function($scope, $route) {
  $scope.$on('$routeChangeSuccess', function() { 
    var html = $route.current.html;
    $scope.brand = html;
  });
});

app.config(function ($routeProvider) {
  $routeProvider
  .when('/next-page', {
    templateUrl: 'partials/next-page.html',
    controller: 'BrandCtrl',
    html: '<h3>New brand</h3>'
});

1 个答案:

答案 0 :(得分:1)

您应该通过&#39;视图&#39;更改HTML在路线中。

 $stateProvider.state('app',{url: 'someurl',   
    views: {
      'topnav': { templateUrl: 'path/to/some/html',
            controller: 'navcontroller'},
      'mainContent': {templateUrl: 'path/to/some/other/html',
            controller: 'contentcontroller'}    } 
 });

在您的HTML中,您将拥有多个观看次数:

 <div ui-view="topnav"></div>   
 <div ui-view="mainContent"></div>