首页 > 解决方案 > 双花括号 {{ }} 未将文本绑定到 h1 元素

问题描述

我正在尝试使用 $filter 服务来创建一个函数,该函数返回在文本字段中键入的字符的小写版本。我究竟做错了什么?

var myApp = angular.module('myApp', []);

myApp.controller('mainController', ['$scope', '$filter', function($scope, $filter) {

  $scope.handle = '';

  $scope.lowercasehandle = function() {
    return $filter('lowercase')($scope.handle);
  };

}]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="myApp">
  <header>
    <nav class="navbar navbar-default">
      <div class="container">
        <div class="navbar-header">
          <a class="navbar-brand" href="/">AngularJS</a>
        </div>
        <ul class="nav navbar-nav navbar-right">
          <li><a href="#"><i class="fa fa-home"></i> Home</a></li>
        </ul>
      </div>
    </nav>
  </header>
  <div class="container">
    <div>
      <label>What is your twitter handle?</label>
      <input type="text" ng-model="handle" />
    </div>
    <hr />
    <h1>twitter.com/{{ lowercasehandle() }}</h1>
  </div>
</div>

标签: javascriptangularjs

解决方案


您尚未在ng-controller任何地方添加指令。添加它,它的工作原理。此外,您可以直接在 html 中使用过滤器:

var myApp = angular.module('myApp', []);

myApp.controller('mainController', ['$scope', '$filter', function($scope, $filter) {

  $scope.handle = '';

}]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="myApp">
  <header>
    <nav class="navbar navbar-default">
      <div class="container">
        <div class="navbar-header">
          <a class="navbar-brand" href="/">AngularJS</a>
        </div>
        <ul class="nav navbar-nav navbar-right">
          <li><a href="#"><i class="fa fa-home"></i> Home</a></li>
        </ul>
      </div>
    </nav>
  </header>
  <div class="container" ng-controller="mainController"> <!-- Here -->
    <div>
      <label>What is your twitter handle?</label>
      <input type="text" ng-model="handle" />
    </div>
    <hr />
    <h1>twitter.com/{{ handle | lowercase }}</h1>
  </div>
</div>


推荐阅读