class AdminHomeController {
private config1; // I tried different variations here but none worked
public config2; //
constructor(
private $scope: IAdminHomeControllerScope
) {
this.config = $scope.config; // << this works
}
static $inject = [
'$scope'
];
configChanged = (clear) => {
this.config.clear();
};
}
Dieser Code funktioniert und this.config
verfügt über alle Methoden, die ich brauche. Aber gibt es eine Möglichkeit , dass ich die Notwendigkeit für die this
entfernen kann? Was ich möchte in der Lage sein zu tun, ist folgender zu Code:
configChanged = (clear) => {
config.clear();
};
Ich habe versucht, mit vielen verschiedenen Variationen, aber ich kann es nicht zu arbeiten.
Hier ist ein Beispiel aus dem gleichen Code vor dem Typoskript Wechsel:
angular.module('admin')
.controller('AdminHomeController', [
'$http',
'$q',
'$scope',
'utilityService',
adminHomeController]);
function adminHomeController(
$http,
$q,
$scope,
utilityService
) {
var app = $scope.app;
var config = app.config;
var home = this;
var util = utilityService;
home.autoSave = false;
home.data = {};
home.entityType = null;
home.forms = { grid: null, modal: null };
home.grid = { view: [], data: [] };
home.modal = { visible: false };
home.row = {};
home.rowSelected = null;
home.configChanged = function (clear) {
config.put();
if (clear) {
home.grid.backup = [];
home.grid.data = [];
}
};
warum? . . ... . – djechlin
Lange vorher, als ich nur Javascript verwendete, sah meine Lösung sauber aus. Jetzt hat die Lösung das Wort "this" vor fast jedem Funktionsaufruf. In einigen Fällen habe ich fast 100 Funktionsaufrufe auf diese Weise. –
Wenn Sie 'this' löschen, wird Ihr Code in JavaScript eine andere Bedeutung haben. Dies ist nicht Java oder C# oder C++ ... –