ダッシュボードcomponentからホームコントローラのスコープにアクセスしようとしていますが、未定義です。角度コンポーネントの出力バインディング機能からコントローラスコープにアクセスできない
私はもう一度アプローチを試みましたが、私の関数変数は未定義です。私は活字体
最初のアプローチで角度1.5を使用してい
:
ホームコントローラのHTML:
<div class="home-container">
<dashboard-component on-tile-type-changed="HomeCtrl.onTileTypeChanged">
</dashboard-component>
</div>
ホームコントローラJS:
namespace app.dashboard {
'use strict';
class HomeController {
static $inject:Array<string> = ['$window'];
constructor(private $window:ng.IWindowService) {
}
private onTileTypeChanged(tile:ITile) {
console.log(tile); // DEFINED AND WORKING
console.log(this); // NOT DEFINED
}
}
angular
.module('app.dashboard')
.controller('HomeController', HomeController);
}
ダッシュボードコントローラJS:
angular.module('app.dashboard')
.component('dashboardComponent', {
templateUrl: 'app/dashboard/directives/dashboard-container.html',
controller: DashboardComponent,
controllerAs: 'DashboardCtrl',
bindings: {
onTileTypeChanged: "&"
}
});
this.onTileTypeChanged()(tile);
第二のアプローチ:
ホームコントローラのHTML:
<div class="home-container">
<dashboard-component on-tile-type-changed="HomeCtrl.onTileTypeChanged()">
</dashboard-component>
</div>
ダッシュボードコントローラJS:
this.onTileTypeChanged(tile);
そして、ここで私よ
private onTileTypeChanged(tile:ITile) {
console.log(tile); // NOT DEFINED
console.log(this); // DEFINED AND WORKING
}
'ダッシュボード-component'のバインディングは何ですか? – georgeawg
controllerAs構文を試してみましたか? – Yerken
@georgeawgが追加されました。コントローラの機能が起動しましたが、コントローラスコープと入力変数の両方にアクセスできないようにすることはできません。 –