AngularJS ng-include, $ kapsam içinde geçirilmediği sürece görünümü içermez


121

Bunun ngIncludeham bir yol izleyebileceğini varsaymak yanlış mı ? Şu şekilde ayarlamaya çalışıyorum ngInclude:

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

Bu işe yaramıyor ama böyle bir şey yaparsam işe yarıyor.

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

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

İndex.html dosyamda

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

Does ngIncludesadece kapsam dışı değerler hariç? Eğer öyleyse neden bu şekilde ve html kısmının düz bir şekilde dahil edilmesi değil.

Yanıtlar:


327

ng-includebir ifadeyi kabul eder. Açık URL'yi doğrudan orada belirtmek istiyorsanız, bir dize vermelisiniz.

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

Evet, az önce gördüm. Baktığım örnekler, daha eski bir açısal versiyonu kullanıyordu.
— Çad

44
Bu öğleden sonra bunu çözmeye çalışmak için çok zaman harcadım. Tabii ki bir dizi olması gerekiyor. Bu tamamen mantıklı.
— Code Whisperer

uygulama modülünde ngSanitize etkinken çalışmaz. Bir çözüm arıyorum.
— Dida

4
Bir şey daha var: Sayfada dosya adı olarak alt çizgi olamaz.

5
Küçük tek tırnaklar sorunu çözer. Tam değişimi göremedim (Zayıf gözüm). Lütfen çift tırnak içine kelimelerle tek tırnak eklemeyi belirtin.
— Fizer Khan

1

ng-include, diğer direktifler ( ng-class, ng-src...) kapsamdaki bir Açısal ifadeyi değerlendirir . Tırnak işaretleri ( '') olmadan , kapsamın bir değişkenini arayacaktır.


srcÖzniteliği belirtmeniz gerekmediğini unutmayın .

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

Yeniden yazılabilir: (bu daha basittir)

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

Ayrıca ng-include'i bir öğe olarak kullanabilirsiniz :

<ng-include src="'views/header.html'"></ng-include>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.