小编Jas*_*aat的帖子

如何在Angular 2中创建单件服务?

我已经读过,当引导应该让所有孩子共享相同的实例时注入,但我的主要和头部组件(主应用程序包括头部件和路由器出口)都获得了我的服务的单独实例.

我有一个FacebookService,用于调用facebook javascript api和一个使用FacebookService的UserService.这是我的引导程序:

bootstrap(MainAppComponent, [ROUTER_PROVIDERS, UserService, FacebookService]);
Run Code Online (Sandbox Code Playgroud)

从我的日志记录看起来,引导调用结束,然后我看到FacebookService然后在每个构造函数运行的代码,MainAppComponent,HeaderComponent和DefaultComponent之前创建UserService:

在此输入图像描述

typescript angular2-routing angular2-services angular

131
推荐指数
7
解决办法
12万
查看次数

使用AngularJS时,如何逃避花括号以便在页面上显示?

我希望用户看到双花括号,但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

angularjs

92
推荐指数
4
解决办法
3万
查看次数

调试SystemJS模块加载?

我很难理解模块,需要一种方法来调试我的问题.有没有办法使用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中是否有办法查看它是否会使用捆绑包以及它可以解决的问题?

javascript debugging systemjs

29
推荐指数
1
解决办法
1009
查看次数

Nancy Self使用Razor视图主持空白响应

南希0.6决议


我正试图让自己主持的南希回归剃刀观点,我无法让它发挥作用.南希源代码中的示例使用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!"

c# razor nancy

16
推荐指数
2
解决办法
4179
查看次数

Eclipse上未定义的属性名称(ng-model)

我的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)

eclipse angularjs

15
推荐指数
3
解决办法
5万
查看次数

如何在Angular2中触发变化检测?

我正在创建一个调用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? &nbsp; <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)

typescript angular2-changedetection angular

15
推荐指数
3
解决办法
3万
查看次数

神秘的ASP.NET MVC Action高延迟问题?

使用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 …

asp.net-mvc asp.net-mvc-3

12
推荐指数
1
解决办法
2061
查看次数

我可以在 chrome 扩展中启用源映射吗?

我正在做一些测试开发并使用 Svelte 和 ParcelJS 创建一个 Chrome 扩展,并希望在 chrome 开发工具中查看源映射。但是,在查看任何页面时,我只能看到捆绑的代码,看到此错误:

DevTools 无法加载 SourceMap:无法加载 chrome-extension://debafkiakedogoflaalmbbfbbccnfbib/Background/index.js.map 的内容:HTTP 错误:状态代码 404,net::ERR_UNKNOWN_URL_SCHEME

似乎加载程序不喜欢chrome-extensionurl 方案。我已经尝试将“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?

google-chrome-extension source-maps parceljs

12
推荐指数
1
解决办法
2404
查看次数

在大表中删除列时的注意事项

我有一个调用数据表,已增长到13亿行和173千兆字节的数据我们不再使用两列,一个是char(15),另一个是varchar(24).他们都已经插入NULL一段时间了,我一直推迟删除列,因为我不确定其含义.我们在带有数据库的驱动器和带有事务日志的驱动器上的空间有限.

另外我发现这篇帖子说在DBCC REINDEX完成之前这个空间是不可用的.我认为这既好又坏.这很好,因为删除列应该非常快并且不涉及大量日志记录,但是因为空间不会被回收而很糟糕.新插入的记录会占用更少的空间吗?在我的情况下,这将是好的,因为我们在18个月后修剪旧数据,因此空间将逐渐减少.

如果我们做了DBCC REINDEX(或ALTER INDEX REBUILD)那会真的有帮助,因为列不是任何索引的一部分吗?这会占用日志空间还是锁定表格以使其无法使用?

sql-server sql-server-2005

9
推荐指数
1
解决办法
4251
查看次数

Task.ContinueWith方法需要任务参数吗?

我有一个有两个方法的类,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)

c# multitasking task-parallel-library

7
推荐指数
2
解决办法
1万
查看次数