Ich habe mir heute mit diesem Problem den Kopf kratzen. Bitte. werfen Sie einen Blick auf den folgenden Code. Können Sie erklären, warum Angular diesen Fehler nach dem Auslösen der onUpdate() -Methode aus dem Komponentenbereich der zweiten Ebene ausgibt?Binding-Ausgabe über verschachtelte Komponenten funktioniert nicht
TypeError: Cannot use 'in' operator to search for '$ctrl' in 99
Vielen Dank!
angular.module('app', [ ]);
angular
.module('app')
.controller('appController',function($scope){
var $ctrl = this;
$ctrl.onUpdate = function(number){
$ctrl.number = number;
};
})
// Firstlevel
.component('firstLevel', {
bindings : {
onUpdate : '&'
},
controller: function($scope){
var $ctrl = this;
$ctrl.otherStuff = 'other-stuff';
},
template : `
<second-level data-on-update="$ctrl.onUpdate(number)"></second-level>
`
})
// second-level
.component('secondLevel', {
bindings : {
onUpdate : '&'
},
controller: function($scope){
var $ctrl = this;
\t \t \t
$ctrl.save = function(newVal){
\t $ctrl.onUpdate({number:newVal})
};
},
template : `
\t <button ng-click="$ctrl.save(99)">Save 99</button>
`
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.5/angular.js"></script>
<div ng-app="app" ng-controller="appController as $ctrl">
<div>
# from second level: {{$ctrl.number}}
</div>
<first-level
data-on-update="$ctrl.onUpdate(number)">
</first-level>
</div>
Vielen Dank! Habe es total vergessen. Funktioniert jetzt wie ein Zauber. – Juliano