在路由更改时在 ng-view 之外编辑 HTML
Edit HTML outside ng-view on route change
我想在路线更改时使用路线信息更改导航栏中的一些内容 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>'
});
您应该通过路线中的 'views' 更改 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>
我想在路线更改时使用路线信息更改导航栏中的一些内容 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>'
});
您应该通过路线中的 'views' 更改 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>