Mengklik butang akan menyebabkan borang dimuat semula.
P粉523625080
P粉523625080 2023-08-14 20:46:02
0
2
468
<p>Saya mempunyai borang dalam Angular dengan dua label butang. Butang menyerahkan borang pada <code>ng-click</code>. Butang lain adalah semata-mata untuk navigasi menggunakan <code>ng-click</code>. Walau bagaimanapun, apabila butang kedua ini diklik, AngularJS menyebabkan halaman dimuat semula, mencetuskan ralat 404. Saya menetapkan titik putus dalam fungsi dan ia mencetuskan fungsi saya. Jika saya melakukan mana-mana perkara berikut, ia akan berhenti: </p> <ol> <li>Jika saya mengalih keluar <code>ng-click</code>, butang itu tidak menyebabkan halaman dimuat semula. </li> <li>Jika saya mengulas kod dalam fungsi, ia tidak menyebabkan halaman dimuat semula. </li> <li>Jika saya menukar label butang kepada label sauh (<kod><a></code>) dan menambah <kod>href=""</code>, ia tidak menyebabkan segarkan semula. </li> </ol> <p>Yang terakhir nampaknya merupakan penyelesaian yang paling mudah, tetapi mengapakah AngularJS menjalankan sebarang kod selepas fungsi saya yang menyebabkan halaman dimuat semula? Nampak macam pepijat. </p> <p>Ini ialah borang: </p> <pre class="brush:php;toolbar:false;"><form class="form-horizontal" name="myProfile" ng-switch-when="profile"> <set medan> <div class="control-group"> <label class="control-label" for="passwordButton">Kata Laluan</label> <div class="controls"> <button id="passwordButton" class="secondaryButton" ng-click="showChangePassword()">Change</button> </div> </div> <div class="buttonBar"> <button id="saveProfileButton" class="primaryButton" ng-click="saveUser()">Save</button> </div> </fieldset> </form></pre> <p>Ini ialah kaedah pengawal: </p> <pre class="brush:php;toolbar:false;">$scope.showChangePassword = function() { $scope.selectedLink = "changePassword"; };</pre> <p><br /></p>
P粉523625080
P粉523625080

membalas semua(2)
P粉637866931

Anda boleh cuba menyekat pengendali lalai:

html:

<button ng-click="saveUser($event)">

js:

$scope.saveUser = function (event) {
  event.preventDefault();
  // 你的代码
}
P粉821274260

Jika anda melihat Spesifikasi W3C , nampaknya perkara yang jelas untuk dicuba ialah menanda type='button' pada elemen butang yang anda tidak mahu serahkan.

Beri perhatian khusus kepada lokasi yang dinyatakan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan