在用户搜索事件上动态更改AngularJS App文档标题

时间:2015-11-17 22:53:24

标签: angularjs angularjs-directive angularjs-ng-model

我正在AngularJS教程应用程序中实现搜索功能。因此,只要用户输入搜索<input>字段,我就想要更改我的文档<title>

为此,我在文档的query中使用ng-bind-template模型和<title>,以避免在加载应用程序时出现双花括号{{}}闪烁效果。< / p>

以下是我的代码供参考。

<!DOCTYPE html>
<html lang="en" ng-app="phonecatApp" ng-controller="PhoneListCtrl">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  <link rel="icon" href="/assets/img/fav.png">
  <title ng-bind-template="Phonecat | {{query}}">Phonecat</title>
  <link rel="stylesheet" href="/assets/css/app.css">
  <script src="/assets/js/angular/angular.min.js"></script>
</head>
<body>
  <div>
    <span>Search: </span><input ng-model="query" />
  </div>
  <ul>
    <li ng-repeat="phone in phones | filter:query">
      <span>{{phone.name}}</span>
      <p>{{phone.snippet}}</p>
    </li>
  </ul>
  <p>Total number of phones: {{phones.length}}</p>
  <script src="/assets/js/app.js"></script>
</body>
</html>

此处,我的<title>代码具有ng-bind-template指令query模型&amp;预定义的内容,

  

Phonecat

现在,当页面加载文档<title>设置为

  

Phonecat |

而不只是&#34; Phonecat &#34;。

我不希望ng-bind-template评估&amp;如果<title>模型 EMPTY ,则更改我的文档query。如果query型号 EMPTY ,它应该只显示初始内容(在这种情况下为 Phonecat )作为文档的标题&amp;当query模型更新时&amp; NOT EMPTY ,它应该更新标题(即 Phonecat | nexus mobile )。

如果有人能解释如何解决这个问题,那将会很棒。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用<title>{{ query ? 'Phonecat | ' + query : 'Phonecat'}}</title> 中的三元运算符来有条件地构建标题:

{{1}}

可替换地:

{{1}}