angular.js - $watch监视下拉框,网页刷新时会自动执行一次,如何禁止自动执行?
漂亮男人
漂亮男人 2017-05-15 17:04:22
0
3
845

详细描述:
$watch监视一个下拉框,期望情况是只有当用户点击下拉框中的选项时,前端才请求后端更新数据。

目前的问题是:
当网页加载时,下拉框第一次出现,$watch会自动执行一次,ng的机制认为加载就是一次用户的点击。

希望了解如何禁止这种情况的$watch自动执行

漂亮男人
漂亮男人

répondre à tous(3)
迷茫

Merci pour l'invitation.

Tout d’abord, puis-je corriger un petit défaut de formulation.

Vous avez dit "$watch surveille une liste déroulante", ng est un framework qui implémente une liaison de données bidirectionnelle et possède une API déclarative. Il est impossible pour le $watch ici de surveiller un élément DOM <.> . La formulation appropriée peut être écrite comme "une expression surveillée par $watch qui pointe vers la valeur sélectionnée dans la liste déroulante", ce qui est plus précis (les amis qui maîtrisent bien le chinois peuvent optimiser davantage). 下拉框

Lorsque nous posons des questions, nous avons tendance à trop nous concentrer sur les réponses que nous voulons connaître et à ignorer le mode d'expression. De ce fait, nous finissons souvent en vain. Ce type de questions est très courant dans la SF. la description est vague, ce qui rend impossible de répondre. En fait, je peux encore comprendre la description de la question, mais je veux juste dire quelques mots de plus en raison de mes sentiments.

Pour en revenir au sujet, puisque vous ne voulez pas vous occuper de l'initialisation des données

, vous pouvez le juger ainsi$watch

$scope.$watch('表达式', function(newVal, oldVal){
    //当之前值和当前值相同,或者之前值为null或undefined时
    if(newVal === oldVal || oldVal == null){
        //不执行任何操作
        return;
    }
    
    //你的正常代码,写这里
});
PHPzhong
http://docs.ngnice.com/api/ng/type/$rootScope.Scope

scope.$watch('name', function(newValue, oldValue) {
  if(newValue == oldValue) return;
  scope.counter = scope.counter + 1;
});
習慣沉默

L'utilisation de ngChange peut éviter les appels d'initialisation

Remarque :

  • Doit être utilisé avec ngModel

  • Changer la valeur de ngModel à l'aide d'un programme ne déclenchera pas ngChange

Évaluez l'expression donnée lorsque l'utilisateur modifie l'entrée. L'expression est évaluée immédiatement, contrairement à l'événement JavaScript onchange qui ne se déclenche qu'à la fin d'une modification (généralement, lorsque l'utilisateur quitte l'élément de formulaire ou appuie sur le bouton). touche retour).

Documentation ngChange

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!