Javascript 使用Typescript时,如何从子控制器访问父控制器中的作用域函数?
我的页面上有一个DIV的父控制器Javascript 使用Typescript时,如何从子控制器访问父控制器中的作用域函数?,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,我的页面上有一个DIV的父控制器AppController,还有一个子控制器AdminHomeController,它位于页面的某个区域内。这是我到目前为止所定义的 interface AppControllerScope extends ng.IScope { app: AppController; } app.controller('appController', AppController); class AppController { static $inject
AppController
,还有一个子控制器AdminHomeController
,它位于页面的某个区域内。这是我到目前为止所定义的
interface AppControllerScope extends ng.IScope {
app: AppController;
}
app.controller('appController', AppController);
class AppController {
static $inject = ['$scope',]
constructor( public $scope: AppControllerScope ) {
$scope.app = this;
}
doTask() = () => {
var x = 99;
}
}
class AdminHomeController {
static $inject = ['$scope']
constructor( public $scope: ?? ) { // << What should my interface look like?
$scope.home = this;
app.doTask();
}
app = $scope.app; // How can I set up a parameter of this controller
// that can be used on my web page or inside this
// controller?
}
但我不确定它应该是什么样子。以下是完整的代码:
/// <reference path="angular.d.ts" />
var app = angular.module('app', []);
interface AppControllerScope extends ng.IScope {
app: AppController;
}
app.controller('appController', AppController);
class AppController {
static $inject = ['$scope'];
constructor(public $scope: AppControllerScope) {
$scope.app = this;
}
doTask = () => {
var x = 99;
}
}
interface AdminHomeControllerScope extends AppControllerScope {
home: AdminHomeController;
}
class AdminHomeController {
public app: AppController;
static $inject = ['$scope'];
constructor(public $scope: AdminHomeControllerScope) { // << What should my interface look like?
$scope.home = this;
$scope.app.doTask();
// For easier access if you want it
this.app = $scope.app;
}
}
//
var-app=angular.module('app',[]);
接口AppControllerScope扩展了ng.isScope{
app:AppController;
}
app.controller(“appController”,appController);
类AppController{
静态$inject=['$scope'];
构造函数(公共$scope:AppControllerScope){
$scope.app=这个;
}
doTask=()=>{
var x=99;
}
}
接口AdminHomeControllerScope扩展了AppControllerScope{
主页:AdminHomeController;
}
类AdminHomeController{
公共应用程序:AppController;
静态$inject=['$scope'];
构造函数(public$scope:AdminHomeControllerScope){//为什么不为扩展AppControllerScope的AdminHomeController创建一个新接口呢?
/// <reference path="angular.d.ts" />
var app = angular.module('app', []);
interface AppControllerScope extends ng.IScope {
app: AppController;
}
app.controller('appController', AppController);
class AppController {
static $inject = ['$scope'];
constructor(public $scope: AppControllerScope) {
$scope.app = this;
}
doTask = () => {
var x = 99;
}
}
interface AdminHomeControllerScope extends AppControllerScope {
home: AdminHomeController;
}
class AdminHomeController {
public app: AppController;
static $inject = ['$scope'];
constructor(public $scope: AdminHomeControllerScope) { // << What should my interface look like?
$scope.home = this;
$scope.app.doTask();
// For easier access if you want it
this.app = $scope.app;
}
}