我想在我的角度演示项目中实现Crop Plugin Library。我已将必需的模块注入到主模块并成功剪切了一张图片。但我不知道如何将base64字符串传递给控制器。什么到目前为止,我已经试过是:不能以角度访问控制器内部的变量
var myApp = angular.module('myModule', ['ngRoute', 'angular-img-cropper', 'app']);
myApp.config(function($routeProvider) {
$routeProvider
.when('/multiple',{
templateUrl: 'templates/multi.html',
controller: 'multiController',
controllerAs: 'multiCtrl'
})
});
myApp.controller('multiController', function ($scope,$rootScope) {
var vm = this;
vm.clickButton = function() {
console.log("photo: "+vm.member_photo);
};
});
HTML - 模板/ multi.html:
<h1>Multi page which has another controller inside</h1>
<div ng-controller="multiController">
<div ng-controller="ImageCropperCtrl as ctrl">
<input type="file" img-cropper-fileread image="cropper.sourceImage" />
<div>
<canvas width="500" height="300" id="canvas" image-cropper image="cropper.sourceImage" cropped-image="cropper.croppedImage" crop-width="500" crop-height="200" min-width="100" min-height="50" keep-aspect="true" crop-area-bounds="bounds"></canvas>
</div>
<div>Cropped Image (Left: {{bounds.left}} Right: {{bounds.right}} Top: {{bounds.top}} Bottom: {{bounds.bottom}})</div>
<div ng-show="cropper.croppedImage!=null"><img ng-model="member_photo1" ng-src="{{cropper.croppedImage}}" /></div>
<textarea name="member_photo" ng-model="multiCtrl.member_photo" id="member_photo" class="form-control valid">{{cropper.croppedImage}}</textarea>
</div>
<button ng-controller="insideController" ng-click="multiCtrl.clickButton()">Console.log</button>
</div>
如果我检查textarea的价值是存在的,但它不是textarea的,也是内所示值不能在我的控制器中访问。我究竟做错了什么?
给出的示例您正在使用控制器作为语法,但未在HTML中指定控制器的别名。你需要使用ng-model =“vm.member_photo”。你的ng-click也一样。你也有ng-model和{{}}与ng-bind等价。你只需要使用一个 – UserNeD