gpt4 book ai didi

javascript - 将我的 Angular 代码转换为 TypeScript

转载 作者:行者123 更新时间:2023-12-03 09:02:31 25 4
gpt4 key购买 nike

我已经编写 Angular 大约一年了,并且取得了很大的进步。现在,每个人都在喊 TypeScript。关于这个主题有很多教程和博客,但似乎没有任何一致性。这个 app.js 文件在 TypeScript 中应该是什么样子?

angular.module('angular10App', [
'ngCookies',
'ngResource',
'ngSanitize',
'ui.router',
'ui.bootstrap',
'ngStorage',
'cfp.loadingBar',
'ngAnimate'
])
.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {

$urlRouterProvider
.otherwise('/');

$locationProvider.html5Mode(true);
});

这个 Controller 应该是什么样子?我更愿意将范围排除在外,因此假设我在路由配置中有“Controller as vm”。

angular.module('angular10App')
.controller('ResultsCtrl', function ($scope, $stateParams, results) {

$scope.flightType = $stateParams.flightType;
$scope.selectedAirportDep = $stateParams.from;
$scope.selectedAirportRet = $stateParams.to;
$scope.depDate = $stateParams.depDate;
$scope.arrDate = $stateParams.arrDate;
$scope.class = $stateParams.class;
$scope.adults = $stateParams.adults;
$scope.children = $stateParams.children;

$scope.results = results;
});

最佳答案

模块的注册基本相同

angular.module('angular10App', [
'ngCookies',
'ngResource',
'ngSanitize',
'ui.router',
'ui.bootstrap',
'ngStorage',
'cfp.loadingBar',
'ngAnimate'
])
.config($stateProvider: ng.ui.IStateProvider,
$urlRouterProvider: ng.ui.IUrlRouterProvider,
$locationProvider: ng.ILocationProvider) {
$urlRouterProvider.otherwise('/');
$locationProvider.html5Mode(true);
}

对于 Controller ,应该定义为一个类

module controllers {
export interface IYourScope extends ng.IScope {
someField: boolean;
someOtherField: string;
}

export class yourController {
constructor(private $scope: IYourScope) {
$scope.someField = true;
$scope.someOtherField = "something";
}
}
}

尽管我更喜欢使用controllerAs并访问 Controller 类的属性(我想这会导致以后更容易迁移到Angular 2.0),例如:

module controllers {    
export class yourController {

public someField: boolean;
public someOtherField: string;

constructor(private $scope: ng.IScope)
this.someField = true;
this.someOtherField = "something";
}
}
}

然后你就可以像往常一样注册这个 Controller

angular.module('yourModule').controller('ctrl',controllers.yourController);

关于javascript - 将我的 Angular 代码转换为 TypeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32266973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com