小编DAR*_*Guy的帖子

如何router.navigate到Angular 4中的相同路线并捕获相同的事件?

好的,我的问题有两个用例:

  1. 我正在开发一个有/en/register路线的应用程序.当我在根部并且单击一个按钮时,this.router.navigate([this.routeParams.lang, 'register']);这一切都很好,并且一切都很好,这会在构造函数(或ngOnInit,无论如何)中打开一个模态($('#modalRegister') as any).modal('show');.

    这一切都很好,但如果我关闭模态,路线仍然是/en/register/(是的,我可以让它去,/en但在你建议之前看到用例#2),所以当我点击按钮,它什么都不做.没有调用构造函数或ngOnInit,甚至 没有调用route.params.subscribe()route.url.subscribe()(我认为它们应该......).

  2. 在同一个应用程序中,我有一个按钮,可以进行搜索并将一些标记放在地图中(in /en/search/blah).如果我在索引页面更改搜索查询,这一切都很好.但是,如果用户在其他地方拖动地图并希望将相同的标记再次居中,我也会这样做this.router.navigate(['search', this.searchQuery]);,如果它最终是相同的路线(例如,单击两次搜索按钮),它就不会做任何事情.

虽然我同意它是好的,所以如果URL没有改变,组件不会被重新创建,这是一个糟糕的设计,因为在UI路由器中你可以做同样的事情并且它工作(据我记得) .

那么,在Angular 4中,当告诉导航到相同的URL时,如何在路由组件的构造函数/ ngOnInit中运行相同的代码?或者如何检测URL是否相同并采取相应措施?(虽然我仍然认为这是糟糕的设计,但无论如何......).

任何意见是极大的赞赏.谢谢!

javascript routing routes angular-ui-router angular

8
推荐指数
2
解决办法
8345
查看次数

LINQ"无法检测到以下存储过程的返回类型"(非临时表)

长期潜伏者,这里的第一次海报:)

我已经决定在这里问,因为我已经厌倦了在Google,SO等搜索.从我的SQL 2005 DB导入存储过程到我的网站(FW 4.0,C#)LINQ项目时遇到此错误:

"无法检测到以下存储过程的返回类型"

我有两个问题.我想请注意,我没有使用临时表.对于安全措施,这些查询仅以变量名称进行编辑.无论如何,这是有效的:

ALTER PROCEDURE [dbo].[spMyWorkingProc]
@OS numeric
AS
BEGIN
SET NOCOUNT ON;

DECLARE @sql varchar(5000)

set @sql = '
        SELECT
        *
        FROM MYDB.dbo.MYVIEW 
        WHERE OS = ' + CONVERT(varchar, @OS)

EXEC('
SET NOCOUNT ON
SELECT * FROM
OPENROWSET(''SQLOLEDB'', ''MYDB''; ''user''; ''password'', ''' + @sql + ''')')

END
Run Code Online (Sandbox Code Playgroud)

而这是没有的:

ALTER PROCEDURE [dbo].[spNotWorking]
@IDCLIENT int,
@PPNO char(10)
AS
BEGIN
SET NOCOUNT ON;

DECLARE @sql varchar(5000)

set @sql = '
        SELECT
        * …
Run Code Online (Sandbox Code Playgroud)

linq sql-server

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

如何在Leaflet标记的弹出窗口中生成Angular 4组件?

我一直是一个很长的Angular 1.x用户,现在我正在使用Angular 4创建一个新的应用程序.我仍然没有掌握大多数概念,但我终于有一些非常好的工作.但是,我有一个问题,我需要使用Leaflet在Marker的弹出窗口中显示Angular 4组件(尽管在1.x中我只是使用了指令).

现在,在Angular 1.x中我可以使用$ compile对模板中的指令(`<component>{{ text }}</component>`)里面的按钮等等它会起作用,但是Angular 4与它的AoT完全不同,并且在运行时编译似乎真的很棒很难,并没有简单的解决方案.

在这里问了一个问题,作者说我可以使用指令.我不确定这是否是正确的方法,甚至不知道如何将我自己的代码与他提出的解决方案混合...所以我做了一个基于npm的小项目,Angular 4和Leaflet已经设置好,以防你知道如何帮助我还是想试一试(我非常感谢!).我一直在敲打这个可能已经一个星期了,我真的厌倦了尝试了很多替代品而没有成功:(

这是我在GitHub中的回购链接:https://github.com/darkguy2008/leaflet-angular4-issue

我们的想法是在Marker中生成PopupComponent(或类似的东西),代码可以在src/app/services/map.service.ts第38行找到.

提前致谢!:)

编辑

我设法解决了:)看到标记答案的细节,或这个差异.有一些警告,Angular 4和Leaflet的程序有点不同,它不需要那么多的变化:https://github.com/darkguy2008/leaflet-angular4-issue/commit/b5e3881ffc9889645f2ae7e65f4eed4d4db6779b

我还从这里解释的解决方案中创建了一个自定义编译服务,并上传到相同的GitHub存储库.谢谢@yurzui!:)

web-component leaflet angular

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

每次在表设计器中选项卡时,如何在 SSMS 18.5 中静音 Windows 蜂鸣声?

每次我使用表设计器时,焦点都会从任何字段(列名称、数据类型、允许空值等)发生变化,方法是按Tab或切换到另一个窗口来从任何字段(列名称、数据类型、允许空值等)更改焦点时,都会播放经典的窗口蜂鸣声。这很烦人,无论谁认为这是个好主意,都应该重新审视他的人生目标。

SSMS(SQL Management Studio)甚至没有出现在音量混合器中,所以我什至无法从那里将其静音,除非我将整个输出设备(或系统声音)静音,这不是我想要的。有其他人遇到过这种情况还是只发生在我的电脑上?

windows sql-server ssms

7
推荐指数
0
解决办法
1305
查看次数

在web.config中获取HTTPModule自己的参数?

我正在创建一个HTTPModule,可以重复使用几次,但参数不同.以一个请求重定向器模块为例.我可以使用HTTPHandler,但它不是一个任务,因为我的进程需要在请求级别工作,而不是在扩展/路径级别.

无论如何,我想以这种方式拥有我的web.config:

<system.webServer>
    <modules>
        <add name="tpl01" type="TemplateModule" arg1="~/" arg2="500" />    
        <add name="tpl02" type="TemplateModule" arg1="~/" arg2="100" />    
    </modules>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

但我能找到的大部分信息都是这样的.我说,是的,我可以获得整个<modules>标记,但我的HTTPModule的每个实例如何知道要采用哪些参数?如果我可以在创建时获得名称(tpl01tpl02),我可以在之后通过名称查看其参数,但我没有在HTTPModule类中看到任何属性来获取它.

任何帮助都会非常受欢迎.提前致谢!:)

c# asp.net arguments web-config httpmodule

5
推荐指数
1
解决办法
1019
查看次数

C#UTF-8字符串不想转换为ASCII(或者可读的东西)

我正在尝试转换正在从文件中读取的字符串.我不知道文件是如何制作或创建的(编码方式),但这是交易:我得到这个字符串:

"operaci n"应该是"operación"(西班牙语操作).

我在尝试阅读文件时尝试过更改编码:

using (StreamReader sr = new StreamReader("file.txt", false, Encoding.ASCII));
using (StreamReader sr = new StreamReader("file.txt", false, Encoding.UTF8));
using (StreamReader sr = new StreamReader("file.txt", false, Encoding.UTF7));
using (StreamReader sr = new StreamReader("file.txt", false, Encoding.UTF32));
using (StreamReader sr = new StreamReader("file.txt", false, Encoding.Unicode));
Run Code Online (Sandbox Code Playgroud)

并且在保存文件时(而不是StreamWriter).我也尝试了一些我在这里发现的奇怪的编码和我自己的一些实验:

new ASCIIEncoding().GetString(Encoding.Convert(Encoding.UTF8, Encoding.Default, byteArray))
"operaci?n"

new ASCIIEncoding().GetString(Encoding.Convert(Encoding.UTF8, Encoding.Unicode, byteArray))

"F\0o\0p\0e\0r\0a\0c\0i\0??n\0"

new ASCIIEncoding().GetString(Encoding.Convert(Encoding.UTF8, Encoding.UTF32, byteArray))
"F\0\0\0o\0\0\0p\0\0\0e\0\0\0r\0\0\0a\0\0\0c\0\0\0i\0\0\0??\0\0n\0\0\0"

new ASCIIEncoding().GetString(Encoding.Convert(Encoding.UTF8, Encoding.UTF7, byteArray))
"operaci+//0-n"

new ASCIIEncoding().GetString(Encoding.Convert(Encoding.UTF8, Encoding.ASCII, byteArray))
"operaci?n"

new ASCIIEncoding().GetString(Encoding.Convert(Encoding.UTF8, Encoding.BigEndianUnicode, byteArray))
"\0F\0o\0p\0e\0r\0a\0c\0i??\0n\0"

new ASCIIEncoding().GetString(Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding(65001), byteArray))
"operaci???n" …
Run Code Online (Sandbox Code Playgroud)

.net c# encoding ascii utf-8

0
推荐指数
1
解决办法
3428
查看次数

将ES6类存储在变量中,并通过Object.Create实例化它

我目前需要通过变量将传递给动态调用其构造函数的函数,依此类推.简短的例子:

class MyClass {
  constructor ($q) {
    console.log($q);
  }

  expose () {
    return {};
  }
}

const myclass = function () {
  // My concern is this ------.
  // I need to pass it        |
  // as a variable           \|/
  //                          '
  let obj = Object.create(MyClass.prototype);
  obj.constructor.apply(obj, arguments);
  return {}; // other stuff goes here
};
myclass.$inject = ['$q'];
export {myclass};
Run Code Online (Sandbox Code Playgroud)

我的想法是将MyClass作为变量传递,以这种方式:

const myclass = function (classVariable) {
  let obj = Object.create(classVariable.prototype);
  obj.constructor.apply(obj, arguments);
  return {}; // other …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs ecmascript-6

0
推荐指数
1
解决办法
1908
查看次数