好的,我的问题有两个用例:
我正在开发一个有/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()(我认为它们应该......).
在同一个应用程序中,我有一个按钮,可以进行搜索并将一些标记放在地图中(in /en/search/blah).如果我在索引页面或更改搜索查询,这一切都很好.但是,如果用户在其他地方拖动地图并希望将相同的标记再次居中,我也会这样做this.router.navigate(['search', this.searchQuery]);,如果它最终是相同的路线(例如,单击两次搜索按钮),它就不会做任何事情.
虽然我同意它是好的,所以如果URL没有改变,组件不会被重新创建,这是一个糟糕的设计,因为在UI路由器中你可以做同样的事情并且它工作(据我记得) .
那么,在Angular 4中,当告诉导航到相同的URL时,如何在路由组件的构造函数/ ngOnInit中运行相同的代码?或者如何检测URL是否相同并采取相应措施?(虽然我仍然认为这是糟糕的设计,但无论如何......).
任何意见是极大的赞赏.谢谢!
长期潜伏者,这里的第一次海报:)
我已经决定在这里问,因为我已经厌倦了在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) 我一直是一个很长的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!:)
每次我使用表设计器时,焦点都会从任何字段(列名称、数据类型、允许空值等)发生变化,方法是按Tab或切换到另一个窗口来从任何字段(列名称、数据类型、允许空值等)更改焦点时,都会播放经典的窗口蜂鸣声。这很烦人,无论谁认为这是个好主意,都应该重新审视他的人生目标。
SSMS(SQL Management Studio)甚至没有出现在音量混合器中,所以我什至无法从那里将其静音,除非我将整个输出设备(或系统声音)静音,这不是我想要的。有其他人遇到过这种情况还是只发生在我的电脑上?
我正在创建一个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的每个实例如何知道要采用哪些参数?如果我可以在创建时获得名称(tpl01或tpl02),我可以在之后通过名称查看其参数,但我没有在HTTPModule类中看到任何属性来获取它.
任何帮助都会非常受欢迎.提前致谢!:)
我正在尝试转换正在从文件中读取的字符串.我不知道文件是如何制作或创建的(编码方式),但这是交易:我得到这个字符串:
"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) 我目前需要通过变量将类传递给动态调用其构造函数的函数,依此类推.简短的例子:
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) angular ×2
c# ×2
javascript ×2
sql-server ×2
.net ×1
angularjs ×1
arguments ×1
ascii ×1
asp.net ×1
ecmascript-6 ×1
encoding ×1
httpmodule ×1
leaflet ×1
linq ×1
routes ×1
routing ×1
ssms ×1
utf-8 ×1
web-config ×1
windows ×1