Ich bin ein bisschen neu zu angularjs. Ich schreibe eine Direktive, aber ich kann nicht verstehen, wie bindToController läuft. Ich lese diesen hilfreichen Artikel http://blog.thoughtram.io/angularjs/2015/01/02/exploring-angular-1.3-bindToController.html, aber ich kann nicht verstehen, warum ich im folgenden Beispiel nicht definiert habe.Richtlinie verbindlich undefined
.directive('firstDirective', function(){
return {
restrict: 'E',
replace: true,
scope: true,
bindToController: {
directiveInput:'='
},
templateUrl: 'components/directive-tree/directive-tree.html',
controllerAs: 'directiveTreeCtrl',
controller: function($scope, $uibModal){
var self = this;
self.selected = null;
console.log(self.directiveInput); //HERE IS THE UNDEFINED
$scope.modalOptions = {
windowClass: 'semi-modal',
}
this.openDirectiveModal = function(object, index) {
//Other irrelevant code
}
}
}
});
Danach kann ich die Eingabe für die HTML-Vorlage ohne jedes Problem verwenden.
<ul>
<li ng-repeat="object in directiveTreeCtrl.directiveInput">
{{object.Id}} {{object.Name}}
</li>
</ul>
Warum im HTML-Template kann ich directiveInput und es mit den richtigen Werten instanziiert und meine console.log zeigt mir „undefiniert“?
Vielleicht ist es eine dumme Frage. Danke
Sie benötigen eine Richtlinie wie diese "verwenden erste Direktive> 'in Ihrem HTML. Die [offizielle eckige Richtliniendokumentation] (https://docs.angularjs.org/guide/directive) ist vollständiger –
@TomShen ich benutze es richtig. Der einzige Zweifel, den ich habe, ist, warum ich eine undefined in dieser console.log() bekomme und ich kann dieses Objekt nach meinem HTML verwenden, wenn ich es rende – acostela