двойные фигурные скобки {{}} без привязки текста к элементу h1 - PullRequest
1 голос
/ 14 марта 2020

Я пытаюсь использовать службу $ 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>

Ответы [ 2 ]

1 голос
/ 14 марта 2020

Вы нигде не добавили директиву 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>
0 голосов
/ 14 марта 2020

Вы можете использовать фильтр прямо в шаблоне:

<h1>twitter.com/{{ handle | lowercase }}</h1>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...