Ich weiß, es gibt ein paar possible strict violation
Fragen hier, aber ich konnte nicht zu einem Ergebnis basierend auf ihnen kommen. Ich versuche, var vm = this
in einem Controller in einer Klasse zu verwenden und es wirft diesen Fehler, aber ich habe das Gleiche in anderen Controllern mehr als einmal ohne possible strict violation
Fehler gemacht.Mögliche strikte Verletzung eines Ortes, aber nicht eine andere
Also hier ist die erste js-Datei. Es ist eine eckige Anweisung mit dem Controller in der gleichen Datei. Der Fehler kommt von der var vm = this
im Controller unten.
angular.module('app.monitor').directive('scModelLegacyViewer',
scModelLegacyViewer);
function scModelLegacyViewer() {
return {
restrict : 'E',
templateUrl : 'app/monitor/monitor.html',
scope : {
config : '=',
register : '&?',
data : '=?',
allowEditingSwitch : '=?'
},
controller: scModelLegacyViewerController,
controllerAs: 'vm'
};
}
scModelLegacyViewerController.$inject = [ '$q', '$scope', '$timeout', 'config',
'logger', 'ProjectService', 'ModelService', 'InstanceService',
'BayesianService'];
function scModelLegacyViewerController($q, $scope, $timeout,
config, logger, ProjectService,
ModelService, InstanceService, BayesianService) {
var vm = this; // HERE IS THE ERROR LINE
vm.modelInstanceChannel = 'MODEL_INSTANCE';
vm.saveAll = saveAll;
...
Eine weitere Datei, in der das dies zum Beispiel funktioniert perfekt ist, die keine Fehler werfen:
angular
.module('app.model')
.controller('ModelController', ModelController);
//scInitialConfig added in model.route.js
ModelController.$inject = ['$document', '$interval', '$scope', '$stateParams', 'logger',
'modelService', 'scInitialConfig'];
/* @ngInject */
function ModelController($document, $interval, $scope, $stateParams, logger,
modelService, scInitialConfig) {
var vm = this;
var data = null;
vm.instance = 'default';
vm.title = 'Model Viewer';
...
Der einzige Unterschied, den ich mit oben kommen kann ist, dass @ die Spitze der ersten Datei, die ich bin die directive
deklariert, aber in der 2. Datei ist es nur die controller
. Leider bin ich kein kantiger Experte, also weiß ich nicht, ob das ein Problem ist, aber ich denke nur, dass dies der Fehler ist, von dem der Fehler kommt.
nur um hinzuzufügen, jsHint nimmt an, dass eine Funktion, die mit einem Großbuchstaben beginnt, eine Konstruktorfunktion ist, wobei 'this' geeignet ist, während 'this' in einer Nicht-Konstruktorfunktion zu verwenden ist ein wenig verdächtig –
Das ist komisch. Ich habe dies versucht, bevor Sie die Antwort basierend auf einer anderen SO-Frage gemacht haben und kein positives Ergebnis erhalten haben. Ich bin heute Morgen wieder in die Arbeit gekommen und habe eine neue Eingabeaufforderung gestartet, Rand 'Schluckarzt' und es hat funktioniert. Also ja, haha, das war es. Danke für die Antwort! – erp