AngularJS ng-include не включає перегляд, якщо він не передається в $ range


121

Неправильно припускати, що ngIncludeможе пройти необроблений шлях? Я намагаюся встановити своє ngIncludeтак:

<div ng-include src="views/header.html"></div>

Це не працює, але якщо я роблю щось подібне, воно працює.

// HeaderController
app.controller('HeaderCtrl', function($scope){
   $scope.templates = {[
     template: { url: 'views/header.html' }
   ]};

   $scope.template = $scope.templates[0].template;
});

У моєму index.html

<div ng-controller="HeaderCtrl">
  <div ng-include src="template.url"></div>
</div>

Чи ngIncludeтільки за винятком значень поза області дії? Якщо так, то це так, а не пряме включення html часткового.

Відповіді:


327

ng-includeприймає вираз. Якщо ви хочете вказати явну URL-адресу безпосередньо там, вам потрібно надати рядок.

<div ng-include src="'page.html'"></div>

Так, це просто побачив. Приклади, на які я дивився, використовували старіший варіант кутового.
Чад

44
Сьогодні вдень провів багато часу, намагаючись зрозуміти це. З звичайно , він повинен бути рядком. Це має повний сенс.
Code Whisperer

не працює з функцією ngSanitize, включеною в модулі програми. Я шукаю рішення.
Діда

4
Ще одне: на сторінці не може бути підкреслення як імені файлу.

5
Невеликі одиничні цитати вирішують проблему. Я не міг бачити точної зміни (Моє бідне око). Будь ласка, згадайте, додайте слова в одиничні лапки подвійними лапками.
Фізер Хан

1

ng-include, як і інші директиви ( ng-class, ng-src...) оцінює кутовий вираз із області дії. Без лапок ( '') він буде шукати змінну області.


Зауважте, що вам не потрібно вказувати srcатрибут.

<div ng-include src="'views/header.html'"></div>

Можна переписати на: (що простіше)

<div ng-include="'views/header.html'"></div>

Ви також можете використовувати ng-include як елемент :

<ng-include src="'views/header.html'"></ng-include>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.