Bagaimana saya bisa melakukan ng-include secara kondisional di angularJS?
Misalnya saya hanya ingin memasukkan sesuatu jika, variabel x
disetel ke true
.
<div ng-include="/partial.html"></div>
Bagaimana saya bisa melakukan ng-include secara kondisional di angularJS?
Misalnya saya hanya ingin memasukkan sesuatu jika, variabel x
disetel ke true
.
<div ng-include="/partial.html"></div>
Jawaban:
Jika Anda menggunakan Angular v1.1.5 atau yang lebih baru, Anda juga dapat menggunakan ng-if :
<div ng-if="x" ng-include="'/partial.html'"></div>
Jika Anda memiliki versi yang lebih lama:
Gunakan ng-switch :
<div ng-switch on="x">
<div ng-switch-when="true" ng-include="'/partial.html'"></div>
</div>
Anda juga bisa melakukannya
<div ng-include="getInclude()"></div>
Di pengontrol Anda
$scope.getInclude = function(){
if(x){
return "partial.html";
}
return "";
}
ng-switch
jawaban ditandai tidak bekerja untuk saya.
Versi yang lebih mudah dibaca dari salah satu jawaban. Ditambah pengaturan ng-include
untuk null
menghilangkan elemen - seperti ng-if
.
<div ng-include="x ? 'true-partial.html' : null"></div>
Jika kondisinya cukup sederhana, Anda juga bisa meletakkan logika kondisional secara langsung di ekspresi ng-include:
<div ng-include="x && 'true-partial.html' || 'false-partial.html'"></div>
Perhatikan bahwa ekspresi x
tidak dalam tanda kutip tunggal dan oleh karena itu dievaluasi. Lihat http://plnkr.co/edit/4fvNDa6Gm3dbVLgsAZrA untuk lebih jelasnya.
Saya mengalami masalah serupa dan mungkin temuan ini dapat membantu seseorang. Saya harus menampilkan sebagian yang berbeda saat mengklik tautan tetapi ng-if dan ng-switch keduanya tidak berfungsi dalam skenario ini (Kode di bawah ini tidak berfungsi).
<button type="button" class="btn btn-link" ng-click="viewType('LIST')">List All</button>
<button type="button" class="btn btn-link" ng-click="viewType('EDIT')">Edit</button>
<button type="button" class="btn btn-link" ng-click="viewType('VIEW')">View</button>
<section class="col-md-8 left-col">
<span ng-if = "LIST">
<div data-ng-include="'./app/view/articles/listarticle.html'">
</span>
<span ng-if = "EDIT">
<div data-ng-include="'./app/view/articles/editorarticle.html'">
</span>
</section>
Jadi yang saya lakukan adalah, alih-alih menggunakan ng-if, Saat mengklik tautan cukup perbarui nilai parsialArticleUrl (yang merupakan model dalam pengontrol) dan nyatakan kode di bawah ini pada html.
<section class="col-md-8 left-col">
<div data-ng-include="partialArticleUrl">
</section>