我正在使用离子框架在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>
任何人都可以指导我出错的地方吗?
答案 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>