Имеет еще одну проблему с вычислением углового машинописного текста; на этот раз, когда речь идет о директивах с контроллерами. Попытка передать объект с страницы на директиву, а затем использовать этот объект в контроллере директивы. Возможно, это не правильный подход, но, похоже, это имеет смысл для меня; просто не могу понять, как получить доступ к объекту в контроллере.Угловая + машинописная: Использовать директиву Класс Scope Переменная в классе контроллера
HTML со страницы:
<div>
<section>
On View: {{ee.obj.name}}
<image-upload obj="ee.obj"></image-upload>
</section>
</div>
шаблон Директива:
<div>
On directive: {{obj.name}}
On controller: {{iuc.obj.name}}
<div class="row">
<div class="col-md-4 text-primary h4">
Add Images
</div>
</div>
<div class="row">
<div class="col-md-3">
<input type="file" multiple ng-model="iuc.imageUploads" ng-change="iuc.uploadImages()" />
</div>
</div>
<div class="row">
<div class="col-md-3 dropzone"></div>
</div>
</div>
Директива машинопись:
/// <reference path="../../../scripts/_all.ts" />
module ObjConfig {
'use strict'
export class ImageUpload implements ng.IDirective {
static instance(): ng.IDirective {
return new ImageUpload();
}
restrict = 'E';
replace = true;
templateUrl = '../../../../App/AppConfig/Views/Directives/ImageUpload.html';
scope = {
obj: '='
};
controller = imageUploadCtrl;
controllerAs = 'iuc';
}
export class imageUploadCtrl {
obj: OBJBase;
imageUploads: OBJImage[];
constructor() {
}
uploadImages() {
//THIS IS WHERE I WANT TO ACCESS OBJ
//this.imageUploads.forEach((iu) => { this.obj.images.push(iu); });
}
}
angular.module('ObjConfig').directive('imageUpload', ImageUpload.instance);
}
Когда я использую "this.obj" в методе, он возвращается как undefined так очевидно, что контроллер «obj» не получает автоматически подключен к директиве «obj». На ee.obj.name на странице отображается значение, obj.name в верхней части шаблона директивы показывает значение, но iuc.obj.name не показывает значение. Поэтому я пытался найти способ связать директиву obj с контроллером obj, и я попытался использовать функцию ссылки для использования ng.IAttributes, но это не дает мне объекта; это дает мне ee.obj.
Любая помощь была бы принята с благодарностью.
Большое спасибо! Это точно! Как только я установил этот флаг, мой контроллер obj имеет значение, и я могу использовать его на всем протяжении моего контроллера! – shinsnake