У меня есть несколько canvas
областей в веб-приложении, чтобы захватить подписи людей, в официальной документации. Я занят попыткой разработать всплывающее окно, чтобы обеспечить большую область для входа пользователя на более мелкие устройства. Области подписей являются чем-то вроде этого:Есть ли способ передать ссылку на угловую модель на функцию области видимости?
<canvas width="400" height="200" ng-signature ng-model="Party1.SignatureBase64"></canvas>
<a href="" ng-click="getSignatureModal(Party1.SignatureBase64)">Show Signature Pad</a>
Тогда я следующая функции в рамках обзора, который выскакивает модальный для сбора данных подписи, но с прохождением в JavaScript «по значению», я застрял с тем, как верните значение из функции в модель.
$scope.getSignatureModal = function (signatureBase64) {
var modalInstance = $modal.open({
templateUrl: 'signatureWindow.html',
controller: 'SignatureModalController',
size: 'lg',
resolve: {
base64: function() {
return signatureBase64;
}
}
});
modalInstance.result.then(function (base64) {
signatureBase64 = base64;
return base64;
}, function() {
alert('Canceled');
});
};
Я мог бы обновить мой нг нажмите чтобы:
ng-click="Party1.SignatureBase64=getSignatureModal(Party1.SignatureBase64)"
, но это, кажется, становится немного громоздким. Или это лучший способ?
Я бы сделал это с трансляцией $ с модального. Переустановите контроллер, чтобы получить модель в качестве полезной нагрузки в сообщении, и вы отделите ее от модальной реализации. Некоторое время назад я создал скрипку, которая использует $ rootScope в качестве брокера сообщений. Я не уверен, что у меня достаточно информации о домене, чтобы точно знать, будет ли это выполнено для вас, но вы можете проверить это на http://jsfiddle.net/kalanbates/dpb5x0vf/. –
Я думаю, что ng-modal имеет свойство scope, возможно, вы можете передать область действия для ссылки на «$ modalInstance» с вашим основным контроллером. {controller: 'SignatureModalController', размер: 'lg', scope: $ scope, ...} –
@wZVanG Мне нравится эта идея, но как я могу сказать, какой мода она должна использовать? Если у меня есть доступ к области видимости, я могу передать модальное имя, но я не согласен с идеей использования «eval». – ProfK