亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

angulaire.js - Problème d'affichage du calque de masque AngularJS
我想大聲告訴你
我想大聲告訴你 2017-05-15 17:06:36
0
2
920

J'ai rencontré un problème et je ne sais pas comment le résoudre. J'espère que quelqu'un qui sait pourra m'aider à comprendre où se situe le problème.

Je souhaite cliquer sur un p sur la page pour afficher dynamiquement un calque de masque.
J'ajoute maintenant ng-click='showFav()' au p qui contr?le l'affichage, et j'ajoute ng-show='showMenu' au p le plus à l'extérieur du calque de masque que je souhaite afficher. est contr?lé via la valeur $scope.showMenu.

Le problème maintenant est qu'une fois que la valeur $scope.showMenu sur ma page est définie sur true dans showFav(), le calque de masque n'est pas affiché.

Pendant le débogage, j'ai constaté qu'après avoir exécuté showFav, la valeur de showMenu devenait fausse. Je ne comprends pas cela. . .

Avez-vous besoin de $scope.$apply() après avoir modifié la valeur showMenu ??? Mais une erreur sera signalée?: [$rootScope:inprog], je suis très pratique. . .

    storeApp.controller('productCtrl', ['$scope', '$http', 'Cart', function($scope, $http, Cart){
        $scope.showMenu = false;

        $scope.addItem1 = function(productSku, num, storeKey) {
            Cart.addtoCart(productSku, num, storeKey);
        };
        $scope.showFav = function(item) {
            $scope.chooseItem = item;
            $scope.showMenu = true;
        };
    }]);
    
    storeApp.directive('choosefav', [function() {
    return {
        restrict: 'AE',
        replace: true,
        templateUrl: 'template/mask.html'
    };

Page

    <p ng-controller="productCtrl" ng-show="showMenu">
        <choosefav></choosefav>
    </p>
我想大聲告訴你
我想大聲告訴你

répondre à tous(2)
淡淡煙草味

1. Ne mettez pas les valeurs de type de base directement sur la portée. Vous pouvez définir un objet vm pour stocker ces valeurs, ce qui peut éviter certains problèmes étranges, tels que?:

storeApp.controller('ctrlName',function($scope){
    $scope.vm={
        showMenu:false
    };
    
    $scope.showFav = function(item) {
        $scope.chooseItem = item;
        $scope.vm.showMenu = true;
    };
});

2. Je ne sais pas à quoi ressemble la structure de votre page et la relation entre le p qui lie l'événement de clic et le calque de masque. Vous feriez mieux de publier le code HTML pour y jeter un ?il

.
大家講道理

Si votre directive ne définit pas de portée pour la directive, cela signifie qu'elle partage la même portée que le parent, vous pouvez donc utiliser directement

dans votre modèle de directive.
ng-show="showMenu"

pour contr?ler l'affichage ou non.

Bien s?r, vous pouvez rendre le calque de masque global et l'utiliser n'importe où.
Définissez un périmètre indépendant, tel que?:

scope:{
    show : '='
}

La commande se lit?:

<choosefav  show="showMenu"></choosefav>

Définissez simplement la valeur de showMenu dans le contr?leur.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal