如何使用angular.js绑定title元素中的数据

jcu*_*bic 10 javascript angularjs angularjs-directive

我正在学习Angular.js并且我设置<title>{{title}}</title>并尝试使用select元素更改它

<select ng-model="user.title">
    <option value="Lorem">Lorem</option>
    <option value="Ipsum">Ipsum</option>
    <option value="Dolor">Dolor</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我试着ng-changeng-selectset()

function ctrl($scope) {
    $scope.title = 'hello'; // this set the title
    $scope.set = function() {
        $scope.title = $scope.user.title; // this not
    };
}
Run Code Online (Sandbox Code Playgroud)

该功能不起作用,但是当我在没有功能的情况下设置它时它可以工作.

我也尝试创建更改指令:

app.directive('change', function() {
    console.log('change');
    return {
        link: function(scope, element, attrs) {
            console.log(arguments);
            element[0].onChange = function() {
                scope[attrs[0]]();
            };
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

但这也行不通.Console.log根本不执行.

小智 19

在处理title标签时,你应该使用ng-bind-template,这样你就不会{{someVar}}在Angular有机会启动之前看到表达式处于原始状态.你可以在title标签中添加标题的初始文本将被您的模板覆盖.

<html data-ng-app="app">
  <head>
    <title ng-bind-template="My App - {{title}}">My App - Default Title</title>
  </head>
  <body>
    {{title}}
    <select ng-model="title">
      <option value="Lorem">Lorem</option>
      <option value="Ipsum">Ipsum</option>
      <option value="Dolor">Dolor</option>
    </select>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)


mad*_*ead 2

无需额外代码,一切都应该正常工作:

<html data-ng-app="app">
  <head>
    <title>{{title}}</title>
  </head>
  <body>
    {{title}}
    <select ng-model="title">
      <option value="Lorem">Lorem</option>
      <option value="Ipsum">Ipsum</option>
      <option value="Dolor">Dolor</option>
    </select>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

就这样。这是一支笔。