Как передать переменные области видимости из контроллера в $ ionicModal в ионной структуре

0

Я создаю приложение в Angular с использованием ионной структуры. Я пытаюсь передать переменную scope cropImgSrc в модальную область видимости, но она, похоже, не работает. Вот мой код

Код контроллера

angular.module('myApp').directive('addprofile',function(){
return{
    restrict: 'E',
    templateUrl: 'client/modules/add-profile-details/add-profile.html',
    controllerAs: 'addProfileController',
    controller: function($scope,$reactive,$ionicModal){
        var vm = this;
        $reactive(this).attach($scope);
        this.helpers({
            imgSrc: function(){
                return '';
            },
            cropImgSrc: function(){
                return '';
            }
        });
        $ionicModal.fromTemplateUrl('client/modules/add-profile-details/crop-image-modal.html', {
            scope: $scope,
            animation: 'slide-in-up'
        }).then(function(modal) {
            vm.modal = modal;
        });
        this.addAvatar = function(files){
            if (files.length > 0) {
                var reader = new FileReader();
                reader.onload = function(e){
                    $scope.$apply(function(){
                        vm.cropImgSrc = e.target.result;
                        vm.modal.show();
                });
                };
                reader.readAsDataURL(files[0]);
            }
            else {
                this.imgSrc = undefined;
            }
        };
    }
} });

И мой шаблон выглядит следующим образом

<ion-view title="Crop Avatar">
<div class="modal">
    <div class="bar bar-header bar-positive">
        <h1 class="title">Your Avatar</h1>
    </div>
    <ion-content>
        <img ng-src="addProfileController.cropImgSrc">
    </ion-content>
</div>

Может ли кто-нибудь направить меня туда, где я ошибаюсь?

Теги:
ionic-framework
angularjs-scope

3 ответа

0

Пожалуйста, замените все "vm" на $ scope и замените модальный код следующим образом:

<ion-view title="Crop Avatar">
   <div class="modal">
      <div class="bar bar-header bar-positive">
         <h1 class="title">Your Avatar</h1>
      </div>
      <ion-content>
         <img ng-src="{{cropImgSrc}}">
      </ion-content>
   </div>
</ion-view>
  • 0
    Пробовал это тоже, но не работает!
0

Так как контроль внутри модального лежит теперь в $ scope, можете ли вы попробовать изменить эту строку vm.modal = modal; с $ scope.modal = modal; Также один вариант - распечатать журналы и проверить значения.

  • 0
    Пробовал это, но это, кажется, не проходит, я даже проверил официальное ионное решение, но ничего не работает.
0

Сначала замените <img ng-src"addProfileController.cropImgSrc"> на <img ng-src="addProfileController.cropImgSrc">

  • 0
    Извините, это была просто опечатка, когда я копировал содержимое здесь!
  • 0
    Ах, хорошо :) Хорошо, давайте посмотрим ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню