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.