2017-10-19 5 views
0

J'ai AngularJS v1.3.1 sur le projet. J'ai une balise d'ancrage dans mon modèle:ng-href ne fonctionne pas comme prévu

<a class="btn btn-primary" 
    ng-href="#!/database/{{home.uuidSelectedDatabase}}/segments?{{goToSegmentsUrlQuery}}"> 
    <i ng-if="!goToSegmentsUrlQuery" 
     class="icon-refresh icon-white pm-icon-spin pm-button-icon"></i> 
    <span ng-i18next="segments:set-operations.form.button.go-to-segments"></span> 
</a> 

J'attends ce point d'ancrage pour avoir vide href jusqu'à ce que les home.uuidSelectedDatabase et goToSegmentsUrlQuery sont définis dans la portée de $.

Cependant, Angular n'attend pas que goToSegmentsUrlQuery soit défini, et pendant un certain temps j'ai un lien se terminant par /segments?, ce qui n'est pas ce dont j'ai besoin.

+1

Vous devez au moins le définir dans la portée; '$ scope.goToSegmentsUrlQuery =" "', sinon la propriété de l'objet sera 'undefined' et Angular ne peut pas surveiller les changements. Cela signifie que lorsque vous le définissez plus tard, Angular ne surveille pas la propriété car elle n'était initialement pas définie du tout. – Svenskunganka

+1

Pouvez-vous s'il vous plaît poster le code de votre 'controller '? –

+0

@Svenskunganka Cela n'aide pas. Mais j'ai résolu le problème, voir ma réponse. –

Répondre

0

je résolu le problème en jetant tout de ng-href valeur, sauf une valeur contreventement frisé:

<a class="btn btn-primary" ng-href="{{goToSegmentsUrl}}"> 
... 

Et cela a fonctionné sans pré-définition $scope.goToSegmentsUrl = '' dans le contrôleur.