Использование пустой строки («») в качестве имени для ng-app

0

Интересно, почему это проблема с использованием пустых строк для ng-app. В пример, предоставленный w3school, я попытался использовать пустую строку, чтобы назвать ng-приложение, как показано ниже, но не удалось.

<!DOCTYPE html>
<html>
    <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
    </script>
<body>

<p>Try to change the names.</p>

<div ng-app="" ng-controller="myCtrl">

    First Name: <input type="text" ng-model="firstName"><br>
    Last Name: <input type="text" ng-model="lastName"><br>
<br>
    Full Name: {{firstName + " " + lastName}}

</div>

<script>
    var app = angular.module('', []);
    app.controller('myCtrl', function($scope) {
      $scope.firstName= "John";
      $scope.lastName= "Doe";
    });
</script>

</body>
</html>

Даже создание " " сделает директиву ng-app. Любые идеи?

Причина, по которой мне задавалась этот вопрос, - это то, что я узнал один пример, реализующий те же функции без инициализации контроллера, а ng-app - пустая строка.

<!DOCTYPE html>
<html>
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
</script>
<body>

<div ng-app="" ng-init="firstName='John'">

<p>The name is <span ng-bind="firstName"></span></p>

</div>

</body>
</html>
  • 9
    Зачем тебе это делать?
  • 0
    @sma Я сделал правку, добавив еще один пример. Это заставило меня задуматься, почему мы не можем этого сделать.
Теги:
angularjs-directive

2 ответа

1
Лучший ответ

вам нужно установить имя для своего модуля или иначе не использовать модуль и удалить "ng-app" из html.

  • 0
    Спасибо. На самом деле я отредактировал вопрос и добавил еще один пример без создания экземпляра контроллера, и на этот раз приложение ng "". Я понимаю, что это действительно причина, по которой я задумался над этим вопросом. Я хотел бы знать причину, почему мы можем сделать это в моем втором примере.
  • 1
    моя вина! вам не нужно удалять директиву ng-app, если у вас нет модуля. «Первое найденное в документе ngApp будет использовано для определения корневого элемента для автоматической загрузки в качестве приложения.» Ссылка на документацию ngApp . Вот почему ваш второй пример работает без ссылки на модуль.
Показать ещё 2 комментария
1

Пустая строка null.

Но разделенная строка все еще является строкой.

Вот почему вы можете использовать его.

  • 0
    Строка с интервалом фактически заставляет это работать, как объяснил OP.
  • 0
    Спасибо. На самом деле я отредактировал вопрос и добавил еще один пример без создания экземпляра контроллера, и на этот раз приложение ng "" . Я понимаю, что это действительно причина, по которой я задумался над этим вопросом. Я хотел бы знать причину, почему мы можем сделать это в моем втором примере.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню