我有一个PHP驱动的特定变量,我需要将其用作动态生成的页面标题的一部分。该页面由AngularJS路由,该处理标题。输出变量的DOM部分如下所示:
INDEX.HTML
<!DOCTYPE html>
<html lang="en" ng-app="asApp">
<head>
<title ng-bind="title">PeppyBurro – Radical Spanish learning tips and tricks for the adventurous learner</title>
</head>
<body ng-controller="mainController">
<div id="main" style="min-height: 50em;">
<div ng-view></div>
</div>
</body>
</html>
blog.php的
<?php echo '<span class="someclass">' . $author . '</span>'; ?>
角度控制器
var asApp = angular.module('asApp', ['ngRoute']);
asApp.config(['$routeProvider', '$httpProvider', '$locationProvider', function($routeProvider, $httpProvider, $locationProvider) {
$routeProvider
.when('/blog/author/:lev2', {
title: 'The PeppyBurro blog',
templateUrl : 'pages/blog.html',
controller : 'blogController'
})
}]);
asApp.controller('blogController', function($scope, $routeParams){});
asApp.run(['$rootScope', '$route', '$location', function($rootScope, $route, $location) {
$rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
if(0 === $location.path().indexOf('/blog/author/')) { document.title = 'Posts by “' + $route.current.params['lev2'] + '” | ' + $route.current.title; }
});
}]);
为了简洁起见,每个片段都被高度删节,但您可以看到所有受影响的区域以及我正在实施的逻辑流程。如您所见,我正在使用URL的slug(通过:lev2
)来生成标题,该标题提供作者的ID而不是实际名称。 PHP变量($author
)包含相应ID的真实名称。我的问题是,如何将此变量的值传递给AngularJS blogController
部分,以便它可以包含在动态生成的页面标题中而不是URL slug中?
我尝试使用ng-model
:
<?php echo '<span class="someclass" ng-model="authorname">' . $author . '</span>'; ?>
然后我在控制器中将lev2
替换为authorname
,如下所示:
$rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
if(0 === $location.path().indexOf('/blog/author/')) { document.title = 'Posts by “' + $route.current.params['authorname'] + '” | ' + $route.current.title; }
});
这没有任何错误;然而,它使我的标题成为&#34; 帖子由undefined &#34;代替。有人可以建议修复吗?