我想在我的角度演示項目中實現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