首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >平均js动态标题

平均js动态标题
EN

Stack Overflow用户
提问于 2015-09-08 09:07:00
回答 3查看 1.1K关注 0票数 3

如何为MEAN应用程序的每个页面添加动态标题。在layout.server.js中,标题定义如下。

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">

<head>
    <title>{{title}}</title>

那么,我们如何才能制作动态标题呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-09 15:22:03

有些人可能会误以为,除了它已经是动态的,它可以改变,它是控制的角度外,因为有一个表达式与{{ }},但这不是完全正确的。

实际上,{{title}}可能意味着一个应该根据scope.title计算的表达式,但是如果您深入了解MEAN.js,您会发现它使用的是swig模板引擎,它还使用{{ }}来定义变量。在这种情况下,{{title}} 不是角表达式,它是一个swig变量,它是通过express/swig传递的,可以在config/env/default.js中进行更改(在MEAN.js 0.4.0中)。

如果您希望在前端更改标题(即可能在角逻辑中更改标题),则必须将范围变量分配给title元素或使用自定义指令。即使在一开始,标题值是使用express/swig定义的值,角可以随后控制并相应地更改它以满足您的需要。

一个解决方案可以是在您的角度状态下定义标题,如下所示:

代码语言:javascript
复制
.state('some-state', {
    url: '/someurl',
    templateUrl: 'some-path-to-view',
    data: {
        title: 'My new title',
    }
  })

然后侦听$stateChangeSuccess事件以设置标题:

代码语言:javascript
复制
$rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {
    console.log(toState.data.title); // Prints the new title to the console
    // Set the title    
});

编辑:第一段重写以获得更多的一致性。

票数 5
EN

Stack Overflow用户

发布于 2016-09-29 13:10:12

要添加到已接受的问题,可以在MeanJS堆栈中执行以下操作:

modules/core/client/views ex中创建一个新视图。title.client.view.html

在文件title.client.view.html中,您可以通过以下操作获得标题:

代码语言:javascript
复制
<div ng-controller="HeaderController">
   <span>{{$state.current.data.pageTitle}}</span>
</div>

HeaderController有一个$state变量,该变量包含以下中指定的当前状态标题:

代码语言:javascript
复制
.state('some-state', {
url: '/someurl',
templateUrl: 'some-path-to-view',
data: {
    title: 'My new title',
}})

然后,要在modules/core/server/views/layout.server.view.html文件中获得标题,您需要如下所示的title.client.view.html

<div ng-include="'/modules/core/client/views/title.client.view.html'"></div>

这将在您导航时动态呈现状态的标题。

票数 0
EN

Stack Overflow用户

发布于 2018-11-04 14:32:16

modules/core/client/directives/page-title.client.directive.js:页面标题已经是动态的,可以在MEAN.JS上找到。

代码语言:javascript
复制
function listener(event, toState) {
        var applicationCoreTitle = 'MEAN.js',
          separator = ' - ',
          stateTitle = applicationCoreTitle + separator;

而“MEAN.js”是默认的页面标题,可以相应更改。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32453620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档