2017-10-16 2 views
1

J'ai une application ionique 1 et im essayant de changer dynamiquement une source img. Je pensais que tout ce que j'avais à faire était de mettre à jour la portée liée à cette source, mais cela n'a pas fonctionné. Une idée sur ce qui pourrait être faux?Img src ne change pas quand j'ai mis à jour la source

my View 
<div ng-if="isList" class="item style-list" ng-repeat="(key, item) in items" 
     ng-click="goTo(item)"> 
      <div class="img-container" ng-if="isList"> 
       <m-img encode="true" src="item.image"></m-img> 
      </div> 
    <h1 ng-bind="item.title"></h1> 
      <p ng-bind="item.resume" ng-if="item.resume"></p> 
      <p ng-bind-html="stripHtml(item.description) | mCut:100" ng-if="!item.resume"></p> 
    </div> 

my Controller 
    $scope.$on("update-data", function(event, args) { 

     $scope.items[1].description = 
     args.response.results[0].item.description; 
     $scope.items[1].id = args.response.results[0].item.id; 
     $scope.items[1].image = args.response.results[0].item.image; 
     $scope.items[1].resume = args.response.results[0].item.resume; 
     $scope.items[1].title = args.response.results[0].item.title; 

    }); 

Mon m-img composante

html 
<div class="thumb-size notloaded"> 
    <div class="thumb" ng-if="imgStyle" ion-img-cache-bg ng- 
style="imgStyle"> 
    </div> 
</div> 

Mon m-img JS est un peu vaste, ici https://codeshare.io/adABMe

+0

afficher le code du composant m-img – Karim

+0

juste posté! –

+0

Je n'ai jamais travaillé avec Ionic auparavant, mais avez-vous essayé [using ng-src] (https://docs.angularjs.org/api/ng/directive/ngSrc)? –

Répondre

1

il semble que l'erreur est à l'intérieur composant MIMG, du code here » ne pas regarder les modifications sur l'attribut src (mais vous le faites uniquement sur l'attribut url qui n'est pas utilisé ici) et vous déclenchez une logique (définie dans $scope.load) pour mettre à jour la vue.

Vous devez ajouter un veilleur même sur src et déclencher votre méthode de charge de mettre à jour la variable $scope.imgSrc, cela devrait mettre à jour votre point de vue par conséquent

controller: function($scope, $timeout, $mAppDef) { 
    $scope.$watch('src', function() { 
    $scope.load() 
    }); 
} 
+0

Je vais jeter un oeil, merci beaucoup pour le soutien! –

+0

vous êtes les bienvenus, j'espère que ça aide :) – Karim

+1

Merci un million travaillé comme un charme! –