我已经读过,当引导应该让所有孩子共享相同的实例时注入,但我的主要和头部组件(主应用程序包括头部件和路由器出口)都获得了我的服务的单独实例.
我有一个FacebookService,用于调用facebook javascript api和一个使用FacebookService的UserService.这是我的引导程序:
bootstrap(MainAppComponent, [ROUTER_PROVIDERS, UserService, FacebookService]);
Run Code Online (Sandbox Code Playgroud)
从我的日志记录看起来,引导调用结束,然后我看到FacebookService然后在每个构造函数运行的代码,MainAppComponent,HeaderComponent和DefaultComponent之前创建UserService:
我希望用户看到双花括号,但Angular会自动绑定它们.这是这个问题的相反情况,他们希望在加载页面时看不到用于绑定的花括号.
我希望用户看到这个:
My name is {{person.name}}.
Run Code Online (Sandbox Code Playgroud)
但Angular取代{{person.name}}
了价值.我认为这可能会起作用,但angular仍会将其替换为值:
{{person.name}}
Run Code Online (Sandbox Code Playgroud)
Plunker:http://plnkr.co/edit/XBJjr6uR1rMAg3Ng7DiJ
我很难理解模块,需要一种方法来调试我的问题.有没有办法使用SystemJS枚举模块及其导出?
配置文件似乎是一个记录不完整的雷区.对于提供像"RxJs"这样的包的模块,如果我将包包含在脚本标记中,或者如果我尝试使用SystemJS配置加载它,我怎么能告诉我应该能够在我加载的内容中找到什么它在哪里?例如,我可以rxjs
通过复制node_modules/rxjs
到`wwwroot/libs/rxjs'并使用它来工作:
System.config({
map: {
'rxjs': 'lib/rxjs'
},
packages: {
'rxjs': { defaultExtension: 'js' }
}
Run Code Online (Sandbox Code Playgroud)
这似乎加载每个单独的文件.现在说我使用脚本标记来加载rxjs包.我怎么知道捆绑包有我需要的模块?在SystemJS中是否有办法查看它是否会使用捆绑包以及它可以解决的问题?
我正试图让自己主持的南希回归剃刀观点,我无法让它发挥作用.南希源代码中的示例使用Web项目,但他们所拥有的页面并未说明这是必需的.我已经尝试指定配置部分,但他们又说" 这一步是完全可选的 "(斜体是他们的).通过源跟踪它看起来不像razor是一个有效的视图引擎,但我没有看到我可以在配置或我自己的NancyModule中添加它...任何帮助将不胜感激.
当我最终发现他们正在查看views文件夹时,似乎cshtml是受支持的扩展,但是DefaultViewFactory没有它与视图引擎关联,所以我得到null:
我的代码:
public Module1()
{
Get["/me"] = parms =>
{
return View["Static.html"]; // WORKS!
};
Get["/you"] = parms =>
{
dynamic model = new ExpandoObject();
//return View["~/Static.cshtml", model];
//return View["/Static.cshtml", model];
return View["Static.cshtml", model]; // blank page, no error or anything
};
}
Run Code Online (Sandbox Code Playgroud)
Static.cshtml只是一个html页面,上面写着"Hello,world!"
我的Eclipse指责标签"ng-model"出错
当我保存文件时,我的eclipse警告ng-model att:
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Angular Learn</title>
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<script src=../javascript/personController.js></script>
<script src=../javascript/carController.js"></script>
</head>
<body>
<div ng-app="" ng-controller="carController">
<input type="text" ng-model="firstName"> <br> // at this line
<input type="text" ng-model="secondName">
<p> {{ firstName + " " + secondName }} </p>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在创建一个调用Facebook javascript api的Facebook服务,并且想知道如何在我的值更新时最好地实现更改检测.
我有一个UserService
具有currentUser
属性,它是一个BehaviorSubject:
currentUser: Subject<User> = new BehaviorSubject<User>(new User(null));
Run Code Online (Sandbox Code Playgroud)
而当我想以响应的JavaScript SDK告诉我,在用户登录或注销Facebook的更新用户,我更新,需要调用tick()
上ApplicationRef
:
updateUser(user: User) {
console.log('UserService.updateUser:', user);
this.currentUser.next(user);
this.appRef.tick(); // UI does not update without this
}
constructor(facebook: Facebook) {
this.facebook.facebookEvents.filter(x => x != null
&& x.eventName == 'auth.authResponseChange')
.subscribe((event) => {
this.updateUser(new User(event.data));
}
}
Run Code Online (Sandbox Code Playgroud)
在我的组件中,我在构造函数中存储来自用户服务的'currentUser'并绑定到value属性:
<h2>Logged into Facebook as {{currentUser.value.name}}</h2>
<p>Is this you? <img src="{{currentUser.value.profilePicUrl}}"></p>
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?有没有比从外部库触发更改后调用ApplicationRef.tick()更好的方法?
我尝试使用NgZone并且不起作用,使用不同的事件返回Feed中的帖子作为服务页面通过它们:
constructor(userService: UserService, private ref: ApplicationRef, private zone: NgZone)
...
this.postsSubject.subscribe((post) => …
Run Code Online (Sandbox Code Playgroud) 使用Firebug和Chrome开发人员工具,我可以看到通过动作加载一些javascript和css文件可能会在我的开发机器上花费额外的500ms.这种情况发生在不同调用的不同文件中,无论我将它们放入何种顺序都无关紧要.如果我直接链接到文件,则不会发生此500ms延迟.我可以反复刷新页面并获得不同的值,但它们总是看起来像请求时间中添加了500毫秒.如果我不断刷新页面,额外的500毫秒会出现在不同的单个文件上,有时会出现两个文件,其中一个是1000毫秒的延迟,如下图所示.
编辑
将Monitor.Enter放入我的HttpModule的BeginRequest和EndRequest中的Monitor.Exit导致延迟消失,所以我的猜测是它与线程化多个请求有关.
我使用Evan Nagel 在这里描述的方法进行缓存,但是当我用一个只传递原始文件的动作替换调用我自己的控制器的链接时,会发生同样的事情:
public FileResult RawFile(string path, string contentType)
{
var server = HttpContext.Server;
string decodedPath = server.UrlDecode(path);
string mappedPath = server.MapPath(decodedPath);
return File(mappedPath, contentType);
}
Run Code Online (Sandbox Code Playgroud)
这是我在html的head部分中的代码:
<link rel="stylesheet" href="@Url.Action("RawFile", new { controller = "Content", path = "~/Content/Site.css", contentType = "text/css" })" type="text/css" />
<script src="@Url.Action("RawFile", new { controller = "Content", path = "~/Scripts/debug/FBINFO.js", contentType = "application/x-javascript" })" type="text/javascript"></script>
<script src="@Url.Action("RawFile", new { controller = "Content", path = "~/Scripts/jquery-1.4.1.min.js", contentType = "application/x-javascript" })" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
这似乎不会发生在我的生产服务器上,至少不会经常发生,但由于延迟通常较高,因此很难判断.这不用担心吗?会是什么原因造成的?它发生在Cassini和Windows 7 …
我正在做一些测试开发并使用 Svelte 和 ParcelJS 创建一个 Chrome 扩展,并希望在 chrome 开发工具中查看源映射。但是,在查看任何页面时,我只能看到捆绑的代码,看到此错误:
DevTools 无法加载 SourceMap:无法加载 chrome-extension://debafkiakedogoflaalmbbfbbccnfbib/Background/index.js.map 的内容:HTTP 错误:状态代码 404,net::ERR_UNKNOWN_URL_SCHEME
似乎加载程序不喜欢chrome-extension
url 方案。我已经尝试将“dist”添加为覆盖目录,但是无论加载什么源映射似乎都会忽略它并仍然使用“chrome-extension”方案。
我可以通过手动将 url 更改为另一个模式(file:///
url 或在 dist 目录中运行简单的 http 服务器并使用http://
url)来使其工作:
//# sourceMappingURL=file:///c:/git/svelte-extension/dist//Background/index.js.map`
//# sourceMappingURL=http://localhost:8080/Background/index.js.map`
Run Code Online (Sandbox Code Playgroud)
有没有办法让chrome覆盖目录或告诉parcel创建这些url?
我有一个调用数据表,已增长到13亿行和173千兆字节的数据我们不再使用两列,一个是char(15),另一个是varchar(24).他们都已经插入NULL一段时间了,我一直推迟删除列,因为我不确定其含义.我们在带有数据库的驱动器和带有事务日志的驱动器上的空间有限.
另外我发现这篇帖子说在DBCC REINDEX完成之前这个空间是不可用的.我认为这既好又坏.这很好,因为删除列应该非常快并且不涉及大量日志记录,但是因为空间不会被回收而很糟糕.新插入的记录会占用更少的空间吗?在我的情况下,这将是好的,因为我们在18个月后修剪旧数据,因此空间将逐渐减少.
如果我们做了DBCC REINDEX(或ALTER INDEX REBUILD)那会真的有帮助,因为列不是任何索引的一部分吗?这会占用日志空间还是锁定表格以使其无法使用?
我有一个有两个方法的类,Load()和Process().我希望能够将这些单独作为后台任务或按顺序运行.我喜欢ContinueWith()语法,但我无法让它工作.我必须在我继续的方法上获取一个Task参数,并且在初始方法上不能有Task参数.
我想在没有lambda表达式的情况下做到这一点,但我是不是使用它们,强制在其中一个方法上创建任务参数,或者创建第三个方法LoadAndProcess()?
void Run()
{
// doesn't work, but I'd like to do it
//Task.Factory.StartNew(MethodNoArguments).ContinueWith(MethodNoArguments);
Console.WriteLine("ContinueWith");
Task.Factory.StartNew(MethodNoArguments).ContinueWith(MethodWithTaskArgument).Wait();
Console.WriteLine("Lambda");
Task.Factory.StartNew(() => { MethodNoArguments(); MethodNoArguments(); }).Wait();
Console.WriteLine("ContinueWith Lambda");
Task.Factory.StartNew(MethodNoArguments).ContinueWith(x => {
MethodNoArguments();
}).Wait();
}
void MethodNoArguments()
{
Console.WriteLine("MethodNoArguments()");
}
void MethodWithTaskArgument(Task t = null)
{
Console.WriteLine("MethodWithTaskArgument()");
}
Run Code Online (Sandbox Code Playgroud) angular ×2
angularjs ×2
c# ×2
typescript ×2
asp.net-mvc ×1
debugging ×1
eclipse ×1
javascript ×1
multitasking ×1
nancy ×1
parceljs ×1
razor ×1
source-maps ×1
sql-server ×1
systemjs ×1