我正在尝试遵循github上的教程来建立Typescript和angularjs的构建过程。老实说,我真的很挣扎。我从github上获得了项目,并将angularjs添加到bower文件,类型和带有angular.ts文件的lib目录中(遵循如何设置JQuery):
/// <reference path="../typings/tsd.d.ts"/>
var angular= angular;
export = angular;
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我尝试以下操作时,我没有运气来注册我的应用程序模块:
import JQuery = require("../lib/JQuery");
import angular = require("../lib/angular");
class A{
public add(number1:number, number2:number):number{
return number1+number2;
}
public colorBG():void{
var app = angular.module('myapp',[]);
$("body").css({"background-color":"black"})
}
}
export = A;
Run Code Online (Sandbox Code Playgroud)
我在网上看到有关此导入类型的相互冲突的信息,因为角度导入无法作为AMD进行,但是绝对类型化的键入文件已将其导出为AMD,所以有什么用呢?gulp构建过程成功完成,但对angular.module的调用抱怨它不是chrome控制台中的函数。是否有技巧使打字稿成角度,以便我可以为我的HTML连接一个输出文件?我已经为AMD尝试了requirejs,为commonjs尝试了tsify / browserify,但我都无法正常工作。在此先感谢您的指导。
我知道VS 2017只是RC,但是将ASP.Net Core 1.0项目迁移到1.1似乎存在一些主要问题.迁移工具无法转换解决方案中我的8个项目中的2个(我更喜欢对我的项目采用分层架构方法)示例项目位于此处.一个项目特别是我将web api控制器方法移入的类库.在尝试重新创建此类库时,似乎无法在安装Microsoft.AspNetCore.Mvc nuget之后声明控制器类.它已安装但编译器未找到Controller,RouteAttribute类等.尝试设置DI层IServiceCollection时出现同样的问题.Nuget Microsoft.Extensions.DependencyInjection似乎没有这样做.
老实说,迁移日志并没有真正帮助我.它似乎表明我的服务项目和project.json文件存在问题,但您可以告诉它在存储库中.
感觉就像微软迫使我们走上了把所有"网络"东西塞进一个项目文件的道路.也许这些工具还不够远,但RC会表明它们应该更接近准备好了吗?
ReciPiBook.Api消息src\ReciPiBook.Api\ReciPiBook.Api.xproj:无法迁移XProj项目ReciPiBook.Api.'dotnet migrate -s -p"C:\ Users\xxx\Documents\Visual Studio 2015\Projects\ReciPiBook2017\ReciPiBookCore\src\ReciPiBook.Api"-x"C:\ Users\xxx\Documents\Visual Studio 2015\Projects\ReciPiBook2017\ReciPiBookCore\src\ReciPiBook.Api\ReciPiBook.Api.xproj"'退出时出现错误代码1. src\ReciPiBook.Api\ReciPiBook.Api.xproj:找不到文件'C:\ Users\xxx\Documents\Visual Studio 2015\Projects\ReciPiBook2017\ReciPiBookCore\src\ReciPiBook.Services\project.json'.迁移失败.src\ReciPiBook.Api\ReciPiBook.Api.xproj:将C:\ Users\xxx\Documents\Visual Studio 2015\Projects\ReciPiBook2017\ReciPiBookCore\src\ReciPiBook.Api\ReciPiBook.Api.xproj备份到C:\ Users\xxx\Documents\Visual Studio 2015\Projects\ReciPiBook2017\ReciPiBookCore\Backup\src\ReciPiBook.Api\ReciPiBook.Api.xproj.src\ReciPiBook.Api\project.json:将C:\ Users\xxx\Documents\Visual Studio 2015\Projects\ReciPiBook2017\ReciPiBookCore\src\ReciPiBook.Api\project.json备份到C:\ Users\xxx\Documents\Visual Studio 2015\Projects\ReciPiBook2017\ReciPiBookCore\Backup\src\ReciPiBook.Api\project.json.
任何人都可以帮助我解决为什么在从调用返回结果后 Angular 防护内部的异步调用不会激活路由的问题吗?我尝试了几种方法,利用 Promise 和 observables 运气有限。我还发现了这个github 问题,特别是 albakov 的推荐。对我来说,注意下面执行的代码片段很重要。我在控制台中看到控制台消息,其中包含所有正确的值,我也能够在服务器端 api 调用中中断。结果被传递到 canActivate 守卫返回的 observable 中,但路由没有按预期激活。
具有调用 api 并将 _isAuthorized 主题与结果绑定的属性的服务方法:
private _isAuthorized: ReplaySubject<boolean> = new ReplaySubject(1);
get isAuthorized() { return this._isAuthorized.asObservable(); }
checkAuthority(id: number) {
return this._http.get(this._apiUrl).toPromise().then((response) => {
console.log(response + ' I resolved!');
if (response.status === 200)
this._isAuthorized.next(true);
});
Run Code Online (Sandbox Code Playgroud)
消耗守护激活方法:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any {
let id: number = this.getId();
if (!this._oauthService.hasValidIdToken()) {
this._router.navigate([`/login/${id}`]);
return Observable.of(false);
}
this._myService.checkAuthority(id);
return this._myService.isAuthorized.first();
}
Run Code Online (Sandbox Code Playgroud)
在将可观察的布尔值解析为 true 后,页面不会发生任何类型的控制台错误。
更新 …
所以我正在完成我的第一个aurelia-bundler gulp任务.我在这里关注这篇文章,除了我将我的文件声明为gulpfile.js而不是看起来在他的解决方案中设置的bundler.js(我怀疑这很重要).无论如何,当我运行gulp bundle时,我收到以下错误:
C:\dev\Movies\src\Movies>gulp bundle
[21:13:34] Using gulpfile C:\dev\Movies\src\Movies\gulpfile.js
[21:13:34] Starting 'bundle'...
[21:13:36] 'bundle' errored after 1.68 s
[21:13:36] Error on fetch for aurelia-router.js at file:///C:/dev/Movies/src/Movies/wwwroot/aurelia-router.js
Loading movies/edit.js
Error: ENOENT: no such file or directory, open 'C:\dev\Movies\src\Movies
\wwwroot\aurelia-router.js'
at Error (native)
Run Code Online (Sandbox Code Playgroud)
我不确定为什么会在该位置查找,因为这些库都在jspm_packages文件夹下.我的gulp文件设置如下:
var gulp = require('gulp');
var bundler = require('aurelia-bundler');
var config = {
force: true,
packagePath: '.',
bundles: {
"wwwroot/appbundle":{
includes:[
'app', 'main', 'about/**', 'movies/**', 'resources/**',
'aurelia-bootstrapper',
'aurelia-framework',
'aurelia-router',
'aurelia-http-client',
'aurelia-validation'
],
options:{
inject: true …Run Code Online (Sandbox Code Playgroud) amd ×1
angular ×1
angularjs ×1
asp.net-core ×1
aurelia ×1
gulp ×1
migration ×1
rxjs ×1
typescript ×1