【发布时间】:2016-02-23 20:54:02
【问题描述】:
我想在路由更改时使用路由信息更改导航栏中的一些 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>'
});
【问题讨论】:
-
为什么不直接使用模板?请注意,您在该路线上有 2 个不同的
BrandCtrl实例......一个用于外部<ng-view>,另一个用于内部 -
谢谢@charlietfl。所以显然这不是要走的路。想详细说明您只使用模板是什么意思?
-
与使用模板以角度渲染其他所有内容的方式相同。
标签: html angularjs angularjs-ng-route angular-controller