Pertanyaan Bagaimana cara menggunakan `mengganti` definisi direktif?


Dalam dokumen ini: http://docs.angularjs.org/guide/directive , dikatakan bahwa ada a replace konfigurasi untuk arahan:

template - ganti elemen saat ini dengan konten HTML. Proses penggantian memigrasi semua atribut / kelas dari elemen lama ke elemen baru. Lihat bagian Membuat Komponen di bawah ini untuk informasi lebih lanjut.

kode javascript

app.directive('myd1', function(){
  return {
    template: '<span>directive template1</span>',
    replace: true
  }
});

app.directive('myd2', function(){
  return {
    template: '<span>directive template2</span>',
    replace: false
  }
});

kode html

<div myd1>
  original content should be replaced
</div>
<div myd2>
  original content should NOT be replaced
</div>

Tetapi halaman terakhir terlihat seperti:

directive template1
directive template2

Sepertinya itu replace tidak berfungsi. Apakah saya merindukan sesuatu?

Demo langsung: http://plnkr.co/edit/rGIgmjO81X2UxJohL4HM?p=preview


75
2018-03-08 02:23


asal


Jawaban:


Anda semakin bingung transclude: true, yang akan menambah isi batin.

replace: true berarti isi dari template direktif akan menggantikan elemen yang direktif yang dideklarasikan, dalam hal ini <div myd1> menandai.

http://plnkr.co/edit/k9qSx15fhSZRMwgAIMP4?p=preview

Sebagai contoh tanpa  replace:true

<div myd1><span class="replaced" myd1="">directive template1</span></div>

dan dengan  replace:true

<span class="replaced" myd1="">directive template1</span>

Seperti yang Anda lihat pada contoh terakhir, tag div memang diganti.


162
2018-03-08 03:49



Ketika dokumentasi menyatakan, 'ganti' menentukan apakah elemen saat ini digantikan oleh arahan. Pilihan lainnya adalah apakah itu hanya ditambahkan sebagai anak pada dasarnya. Jika Anda melihat sumber plnkr Anda, perhatikan bahwa untuk direktif kedua di mana ganti salah bahwa tag div masih ada. Untuk arahan pertama tidak.

Hasil pertama:

<span myd1="">directive template1</span>

Hasil kedua:

<div myd2=""><span>directive template2</span></div>

8
2018-03-08 03:51



Ganti [True | Salah (default)]

Efek

1.  Replace the directive element. 

Ketergantungan:

1. When replace: true, the template or templateUrl must be required. 

5
2018-06-06 06:42



Juga saya mendapat kesalahan ini jika saya memiliki komentar di tn tingkat atas template di antara dengan elemen root yang sebenarnya.

<!-- Just a commented out stuff -->
<div>test of {{value}}</div>

0
2018-05-25 16:13