Angular в пространстве имен XML не загружается автоматически через приложение ng:app

Я знаю, что из-за обратной совместимости с IE, Angular позволяет использовать xmlns и использовать ng: вместо ng-Однако, похоже, он не работает со всеми директивами в xhtml.

<?xml version="1.0"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ng="http://angularjs.org">
  <head>
    <title>Test</title>
  </head>
  <body ng:app="MyApp">
    <div ng:controller="FooController as foo">
      <p>{{foo.text}}</p>
    </div>
    <script src="angular.min.js" />
    <script>
      var app = angular.module("MyApp", []);
      app.controller("FooController", function () {
        this.text = "Hello Angular!";
      });
    </script>
  </body>
</html>

Выше будет просто производить {{foo.text}}, но если я заменю ng:app с ng-app (выезд ng:controller так оно и есть) все отлично работает. Мне очень нравится последовательность использования пространств имен, так почему ng:app Работа?

2 ответа

Решение

ng:app синтаксис не работает из-за следующего:

Элементы, содержащиеся в шаблоне, всегда создаются в пространстве имен HTML. Хотя это, вероятно, подходит для быстрого большинства случаев, если кто-то использует AngularJS с другим XML-документом, таким как SVG, это может вызвать некоторые проблемы.

Рекомендации

Ваш пример работает отлично. Посмотрите здесь: http://plnkr.co/edit/mgUMZe09FSr1aALE6ddd?p=preview

Может быть, ваш angular script не включен должным образом

<script/> должно быть <script></script> это не самозакрывающийся HTML-тег

Другие вопросы по тегам