Maison  >  Questions et réponses  >  le corps du texte

angular.js - angularjs中自定义指令scope的问题

angularjs中自定义的指令中scope的值为{}创造了一个隔离作用域,但依然能访问到父级作用域中的属性,怎么回事?(隔离作用域应该不能访问父级作用域的属性啊,在没有进行绑定策略之前)

淡淡烟草味淡淡烟草味2733 Il y a quelques jours778

répondre à tous(4)je répondrai

  • 巴扎黑

    巴扎黑2017-05-15 17:09:33

    Tout d’abord, vous n’avez pas attribué de valeur à l’attribut scope dans votre exemple. L'attribut scope a trois valeurs : true, false, {}. false est la valeur par défaut.

    Par défaut, faux. À l’heure actuelle, la portée enfant et la portée parent ne font qu’une, et la valeur de scope.$$id est la même.

    Lorsque

    est vrai, une nouvelle portée est créée et la valeur scope.$$id est différente. Toutefois, cette portée hérite de la portée parent. C'est la même chose que les caractéristiques de la chaîne de portée js native. La portée enfant peut accéder aux propriétés et méthodes de la portée parent, mais la portée parent ne peut pas accéder aux propriétés et méthodes de la portée enfant.

    Quand

    vaut {}, c'est un véritable isolement. Pour le moment, la portée de la directive personnalisée n'a rien à voir avec la portée parent. Mais que se passe-t-il si vous souhaitez toujours accéder aux méthodes de propriété de la portée parent ? Configurez simplement les propriétés correspondantes dans {}. Veuillez vous référer à Google Baidu pour la méthode de configuration spécifique.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-05-15 17:09:33

    Vous pouvez y accéder dans le même contrôleur, mais vous ne pouvez pas y accéder dans différents contrôleurs

    répondre
    0
  • ringa_lee

    ringa_lee2017-05-15 17:09:33

    Vous n'êtes pas en quarantaine. Si vous êtes en quarantaine, ajoutez la portée :{}

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-15 17:09:33

    Il existe deux manières d'isoler la portée :

    scope: true
    scope: {}

    répondre
    0
  • Annulerrépondre