У меня есть этот главный ctrl, приведенный ниже, rFileUpload
и rFilePreview
являются компонентами директивы.Я хочу передать мои scope
переменные uploaded
и isDisabled
в эти файлы - например, приведенный ниже widgetFileupload.ctrl.js
, который равен rFileUpload
, но я получаю исключение Ошибка: [$ compile: nonassign] Выражение 'undefined' в атрибуте«isDisabled», используемый с директивой «rFileUpload», не может быть назначен!тогда как uploaded
работает.Нужны предложения.
Главный Ctrl:
'use strict';
define(['angular',
'controllers-module',
'vruntime',
'rFileUpload',
'rFilePreview'
], function (angular, controllers) {
controllers.controller("mainCtrl",
["$scope", "directiveBinder", "$stateParams", "$controller", "$state",
function ($scope, directiveBinder, $stateParams, $controller, $state) {
angular.extend(this, $controller('BaseCtrl', {$scope: $scope}));
$scope.uploaded = false;
$scope.isDisabled = false;
}])};
widgetFileupload.ctrl.js
define(['vruntime',
'directives-module',
'jquery.form',
'rpSpinner',
'text!directives/widget.upload.html',
],
function (vRuntime, directives, form, spinner, template) {
var $q;
var rpDealerFileUpload = vRuntime.widget.BaseDirective.extend({
restrict: 'E',
replace: false,
transclude: true,
template: template,
scope: {
result: '=',
isDisabled: '=',
uploaded: '='
},
compile: function (element, attributes) {
return {
post: function (scope, elem) {
var $form = angular.element('form', elem);
$form.on('drag dragstart dragend dragover dragenter dragleave drop', function (e) {
e.preventDefault();
e.stopPropagation();
})
.on('dragover dragenter', function () {
$form.addClass('upload-dragover');
})
.on('dragleave dragend drop', function () {
$form.removeClass('upload-dragover');
})
.on('drop', function (e) {
var elem = e.originalEvent.dataTransfer;
scope.fileNameChanged(elem);
scope.$apply(function () {
scope.errorMessage = null;
});
});
scope.$on('$destroy', function () {
$form.unbind();
});
}
}
},
controller: function ($controller, $scope,$stateParams, $state) {
$scope.uploaded = false;
$scope.isDisabled = false;
});