Я не могу заставить работать ng-show на своем spinningElement. У меня есть изолированная область для директивы, но, поскольку это элемент внутри, я думаю, что это должно работать?
У кого-нибудь есть идея, что я делаю неправильно?
Фрагмент кода:
angular.module('lr.upload.directives').directive('uploadButton', [
'upload',
function(upload) {
return {
restrict: 'EA',
scope: {
data: '=?data',
url: '@',
param: '@',
method: '@',
onUpload: '&',
onSuccess: '&',
onUploadTest: '&',
onError: '&',
onComplete: '&'
},
link: function(scope, element, attr) {
scope.uploading=false;
var el = angular.element(element);
var fileInput = angular.element('<input type="file" />');
var spinningElement = angular.element('<img ng-show="uploading" class="uploadSpinner" src="../../img/loading.gif" />');
el.append(fileInput);
el.append(spinningElement);
Решение:
angular.module('lr.upload.directives').directive('uploadButton', [
'upload', '$compile',
function(upload, $compile) {
return {
restrict: 'EA',
scope: {
data: '=?data',
url: '@',
param: '@',
method: '@',
onUpload: '&',
onSuccess: '&',
onUploadTest: '&',
onError: '&',
onComplete: '&'
},
link: function(scope, element, attr) {
scope.uploading = false;
var el = angular.element(element);
var fileInput = angular.element('<input type="file" />');
var spinningElement = $compile('<img ng-show="uploading" class="uploadSpinner" src="../../img/loading.gif" />')(scope);
el.append(fileInput);
el.append(spinningElement);