stateParamを介してベース64エンコードされたイメージを送信しようとしています。それは、他のルートに到達し、イメージタグを設定しようとしたときに動作しないように見えます(アイコンが見つからない小さな画像が表示されます)。stateproviderを介してbase64イメージを渡します。
しかし、私は文字列を受け取り、経路を通してそれを送信することなくテスト画像タグを設定すれば、それは完全に機能します。
これは(するonSuccess一部)作品:
angular.module('app.cameraCtrl', [])
.controller('cameraCtrl', ['$scope', '$stateParams', '$state',
function ($scope, $stateParams, $state) {
$scope.momentPicture = document.getElementById('momentPicture');
$scope.camera = function() {
console.log("CAMERA");
navigator.camera.getPicture(onSuccess, onFail,
{ quality: 50, //Quality of photo 0-100
destinationType: Camera.DestinationType.DATA_URL, //File format, recommended FILE_URL
allowEdit: false, //Allows editing of picture
targetWidth: 300,
targetHeight: 300,
correctOrientation: true
});
function onSuccess(imageURI) {
var picture = "data:image/jpeg;base64," + imageURI;
$scope.momentPicture = document.getElementById('momentPicture');
$scope.momentPicture.src = picture;
$state.go('textOverlay', {'picture': picture });
}
function onFail(message) {
console.log('Failed because: ' + message);
}
};
}])
これにはない:
angular.module('app.textOverlayCtrl', [])
.controller('textOverlayCtrl', ['$scope', '$stateParams', '$state',
function ($scope, $stateParams, $state) {
(function init() {
$scope.momentPicture = document.getElementById('momentPicture');
$scope.momentPicture.src = $stateParams.picture;
})();
}])
はお時間をいただき、ありがとうございます。
EDIT:
camera.html(ワークス)
<ion-view title="Camera" id="page4">
<ion-content padding="true" class="has-header">
<button id="camera-button8" ng-click="camera()" class="button button-positive button-block">Camera</button>
<button id="camera-button9" class="button button-assertive button-block">Upload</button>
<img id="momentPicture" ng-src = "test"></img>
</ion-content>
</ion-view>
textOverlay.html(動作しない)
<ion-content padding="true" class="has-header">
<div style="margin: 0px; line-height: 250px; background-color: rgb(232, 235, 239); text-align: center;">
<i class="icon ion-image" style="font-size: 64px; color: rgb(136, 136, 136); vertical-align: middle;"></i>
</div>
<img id="momentPicture" ng-src="momentPicture"></img>
<form id="camera-form4" class="list">
<label class="item item-input" id="camera-input1">
<span class="input-label">Input</span>
<input type="text" placeholder="">
</label>
</form>
<button id="camera-button7" class="button button-positive button-block">Text Overlay</button>
<div id="camera-button-bar1" class="button-bar">
<button id="camera-button4" ng-click="camera()" class="button button-positive button-block">Submit</button>
<button id="camera-button6" ng-click="back()" class="button button-positive button-block button-outline">Cancel</button>
</div>
</ion-content>
</ion-view>
あなたの '$ stateProvider'設定は暗黙のうちに' $ stateParams'があると言いますか? – CozyAzure
はい、パラメータが正しく渡されています。私はtextOverlayのconsole.logにアクセスできました。 – MatTaNg