今日、この問題で頭を悩ませています。お願いします。以下のコードを見てください。 onUpdate()メソッドを第2レベルのコンポーネントスコープから起動した後、Angularがこのエラーをスローする理由を説明できますか?ネストされたコンポーネント間の出力が正しく動作しない
TypeError: Cannot use 'in' operator to search for '$ctrl' in 99
ありがとうございます!
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>
をお試しください!それを完全に忘れてしまった。今の魅力のように動作します。 – Juliano