如何将范围变量从控制器传递到离子框架中的$ ionicModal

时间:2016-03-29 10:46:34

标签: javascript angularjs ionic-framework angularjs-scope

我正在使用离子框架在Angular中构建一个应用程序我试图将范围变量 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>

任何人都可以指导我出错的地方吗?

3 个答案:

答案 0 :(得分:0)

首先将System.out.println("string1==string2 " + (string1==string2)); System.out.println("string2==string3 " + (string2==string3)); System.out.println("string1==string3 " + (string1==string3)); 替换为<img ng-src"addProfileController.cropImgSrc">

答案 1 :(得分:0)

由于modal中的控件现在位于$ scope,你可以尝试改变这一行vm.modal = modal; with $ scope.modal = modal; 另外一种选择是打印日志并检查值。

答案 2 :(得分:0)

请用$ scope替换所有'vm' 并替换像这样的模态代码

<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>