我想使用路由信息在路由更改时更改导航栏中的某些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>'
});
答案 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>