小编Per*_*eck的帖子

jQuery中的自定义事件?

我正在寻找一些关于如何在jquery中以最佳方式实现自定义事件处理的输入.我知道如何从像'click'等dom元素中挂接事件,但我正在构建一个小的javascript库/插件来处理一些预览功能.

我有一个脚本运行来更新dom元素中的一些文本来自我得到的一组规则和数据/用户输入,但现在我需要在该脚本不可能知道的其他元素中显示的相同文本.我需要的是一个好的模式,以某种方式观察这个脚本产生所需的文本.

那我该怎么做?我是否忽略了jquery中的一些内置功能来提升/处理用户事件,还是需要一些jquery插件才能做到这一点?您认为处理此问题的最佳方法/插件是什么?

jquery events

174
推荐指数
6
解决办法
13万
查看次数

如何在Angular2中订阅服务上的事件?

我知道如何使用EventEmitter引发事件.如果我有这样的组件,我还可以附加一个方法来调用:

<component-with-event (myevent)="mymethod($event)" />
Run Code Online (Sandbox Code Playgroud)

当我有这样的组件时,一切都很好.我将一些逻辑移动到服务中,我需要从服务内部引发一个事件.我做的是这样的:

export class MyService {
  myevent: EventEmitter = new EventEmitter();

  someMethodThatWillRaiseEvent() {
    this.myevent.next({data: 'fun'});
  }
}
Run Code Online (Sandbox Code Playgroud)

我有一个组件,需要根据此事件更新一些值,但我似乎无法使其工作.我试过的是这个:

//Annotations...
export class MyComponent {
  constructor(myService: MyService) {
    //myService is injected properly and i already use methods/shared data on this.
    myService.myevent.on(... // 'on' is not a method <-- not working
    myService.myevent.subscribe(.. // subscribe is not a method <-- not working
  }
}
Run Code Online (Sandbox Code Playgroud)

当引发它的服务不是一个组件时,我如何使MyComponent订阅该事件?

我在On 2.0.0-alpha.28上

编辑:修改我的"工作示例"实际工作,因此可以把重点放在不工作的部分;)

示例代码:http: //plnkr.co/edit/m1x62WoCHpKtx0uLNsIv

javascript angular

97
推荐指数
2
解决办法
12万
查看次数

如何在Angular 2中的组件之间共享数据?

在Angular 1.xx中,您只需要相同的服务,最终得到相同的实例,从而可以共享服务中的数据.

现在在Angular 2中,我有一个引用我的服务的组件.我可以阅读和修改服务中的数据,这很好.当我尝试在另一个组件中注入相同的服务时,似乎我得到了一个新实例.

我究竟做错了什么?是模式本身是错误的(使用服务来共享数据)还是我需要将服务标记为单例(在应用程序的一个实例中)或其他什么?

2.0.0-alpha.27/ 顺便说一下

我在注释中通过appInjector(edit:now providers)注入一个服务@Component,然后在构造函数中保存一个引用.它在组件本地工作 - 只是不跨组件(它们不共享相同的服务实例),就像我想的那样.

更新:从Angular 2.0.0开始,我们现在有@ngModule,您可以在其中定义providers属性上的服务@ngModule.这将确保将该服务的相同实例传递给该模块中的每个组件,服务等. https://angular.io/docs/ts/latest/guide/ngmodule.html#providers

typescript angular

79
推荐指数
4
解决办法
8万
查看次数

Ajax更新后重新绑定jQuery中的事件(updatepanel)

我的页面上有几个输入和选项元素,每个(几乎都有)附加了一个事件,一旦它们发生变化就会更新页面上的一些文本.我用jQuery真的很酷:)

我还使用了微软的Ajax框架,利用了UpdatePanel.我之所以这样做,是因为某些元素是基于某些服务器端逻辑在页面上创建的.我真的不想解释为什么我使用UpdatePanel - 即使它可以(它可以付出相当大的努力)被重写为仅使用jQuery我仍然想要UpdatePanel.

您可能已经猜到了 - 一旦我在UpdatePanel上回发,jQuery事件就会停止工作.我实际上是在期待这个,因为"回发"并不是真正的新回发所以我在document.ready中绑定事件的代码将不再被触发.我还通过在jQuery帮助库中阅读它来证实了我的怀疑.

无论如何,在UpdatePanel完成更新DOM之后,我仍然遇到重新绑定控件的问题.我最好需要一个不需要向页面添加更多.js文件(jQuery插件)的解决方案,但是能够捕获UpdatePanel的'afterupdating'这样简单,我可以调用我的方法重新绑定所有表单元素.

asp.net jquery updatepanel asp.net-ajax

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

调用子组件的方法

我有一个嵌套的子组件,如下所示:

<app-main>
    <child-component />
</app-main>
Run Code Online (Sandbox Code Playgroud)

我的appMain组件需要在子组件上调用方法.

如何在子组件上调用方法?

javascript angular

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

ASP.NET RadioButton弄乱了名字(groupname)

我有一个模板控件(转发器)列出了一些文本和其他标记.每个项目都有一个与之关联的单选按钮,使用户可以选择由转发器创建的项目之一.

转发器将radiobutton设置为使用默认ASP.NET命名约定生成的id和名称,使每个radiobutton成为一个完整的"组".这意味着所有的无线电按钮彼此独立,遗憾的是,这意味着我可以同时选择所有的无线电按钮.radiobutton具有用于设置公共名称的聪明属性"groupname",因此它们被组合在一起,因此应该是相关的(因此我一次只能选择一个).问题是 - 这不起作用 - 转发器确保id和名称(控制分组)不同.

由于我使用转发器(可能是listview或任何其他模板化的数据绑定控件),我无法使用RadioButtonList.那么这让我离开了什么地方?

我知道我以前遇到过这个问题并解决了.我知道几乎每个ASP.NET程序员都必须拥有它,所以为什么我不能google并找到解决问题的可靠方法呢?我遇到了通过JavaScript强制执行分组的解决方案(丑陋!)甚至将无线电按钮作为非服务器控件处理,迫使我做一个Request.Form[name]读取状态.我也试过尝试覆盖PreRender事件上的name属性- 不幸的是,拥有的页面和母版页再次覆盖了这个名称以反映完整的id/name,所以我最终得到了相同的错误结果.

如果你没有比我发布的更好的解决方案,你仍然非常欢迎你发表你的想法 - 至少我会知道我的朋友'杰克'是关于ASP.NET有时搞砸了;)

asp.net radio-button

36
推荐指数
5
解决办法
4万
查看次数

简单的内连接结果与Dapper?

我似乎无法找到我的问题的文档或示例(现在已经搜索了一段时间).我认为我的问题很简单,所以这里就是这样.

我有两张桌子.我的主表名为Persons,辅助表名为PersonEntries.对于Person表中的每个人,我可以在PersonEntries表中有0个或更多个条目.像这样.

Table: Person
Id
Name

Table: PersonEntry
PersonId
CheckinTime
CheckoutTime
Run Code Online (Sandbox Code Playgroud)

我有两个像这样的对象

public class Person {
  public string Name;
  public List<PersonEntry> PersonEntries;
}

public class PersonEntry {
  public DateTime CheckinTime;
  public DateTime CheckoutTime;
}
Run Code Online (Sandbox Code Playgroud)

如果我是从数据库中获取它到我的c#类中我该怎么做?我可以将一个表映射到我的c#类中,并为每个表执行此操作,但随后我将匹配哪些条目映射到哪个人.

我已经看过几个将一个PersonEntry映射到一个Person的例子,这里的问题是我有一个从零到多的关系.我的人有一个PersonEntry项目列表.

dapper

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

将数据从jquery ajax请求传递到wcf服务失败反序列化?

我使用以下代码来调用wcf服务.如果我调用一个不带参数的(测试)方法,但返回一个字符串就可以了.如果我向我的方法添加一个参数我得到一个奇怪的错误:

{"ExceptionDetail":{"HelpLink":null,"InnerException":null,"Message":"令牌'\"'是预期的但是找到'''.","StackTrace":"在System.Xml.XmlExceptionHelper .ThrowXmlException(XmlDictionaryReader reader,String res,String arg1,String arg2,String arg3)\ u000d\u000a at System.Xml.XmlExceptionHelper.ThrowTokenExpected(XmlDictionaryReader reader,String expected,Char found)\ u000d\u000a at System.Runtime.Serialization System.ServiceModel.Dispatcher.DataContractJsonSerializerOperationFormatter.DeserializeBodyCore(XmlDictionaryReader reader,Object []参数,布尔的System.Runtime.Serialization.Json.XmlJsonReader.Read()\ u000d\u000a的.Json.XmlJsonReader.ParseStartElement()\ u000d\u000a isRequest)\ u000d\u000a在System.ServiceModel.Dispatcher.DataContractJsonSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader,MessageVersion version,String action,MessageDescription messageDescription,Object [] parameters,Boolean isRequest)\ u000d\u000a at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeBodyContents(Message message,Object [] parameters,Boolean isRequest)\u000d\u000a at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeRequest(Message message,Object [] parameters)\ u000d\u000a at System.ServiceModel.Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest(Message message,Object [] parameters)\ u000d\u000a在System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest(消息消息,Object []参数)\ u000d\u000a at System.ServiceModel.Dispatcher.CompositeDispatchFormatter.DeserializeRequest(消息消息,System.ServiceModel上System.ServiceModel.Dispatcher.DispatchOperationRuntime.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&rpc)\ u000d\u000a的System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc&rpc)\ u000d\u000a中的Object []参数)\ u000d\u000a. System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&rpc)\ u000d\u000a中的Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&rpc)\ u000d\u000a位于System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&rpc)\ u000d\u000a at at在System.ServiceModel.Dispatcher.MessageRpc的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&rpc)\ u000d\u000a处的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&rpc)\ u000d\u000a.Process(Boolean isOperationContextSet)","Type":"System.Xml.XmlException"},"ExceptionType":"System.Xml.XmlException","Message":"令牌'\"'是预期的但是找到''' .","StackTrace":"在System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader,String res,String arg1,String arg2,String arg3)\ u000d\u000a at System.Xml.XmlExceptionHelper.ThrowTokenExpected(XmlDictionaryReader reader,String expected ,Char发现)在System.ServiceModel.Dispatcher上的System.Runtime.Serialization.Json.XmlJsonReader()\ u000d\u000a处的System.Runtime.Serialization.Json.XmlJsonReader.ParseStartElement()\ …

wcf jquery json

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

为什么我不能用net.tcp连接到WCF服务,但我可以使用http?

我在IIS上运行了一个带有ServiceHostFactory的WCF服务.它与WSHttpBinding运行良好,但由于速度和所有在同一网络(没有防火墙),我想使用NetTcpBinding加速一些事情.

当我尝试这样做时,我得到这个错误:

无法连接到net.tcp://zzz.xxx.yyy/MyService.svc.连接尝试持续时间跨度为00:00:01.0464395.TCP错误代码10061:无法建立连接,因为目标计算机主动拒绝它xxxx:808.

SecurityMode.None只是用来确保不会搞砸我,我尝试了两种不同的尝试:

binding.Security.Message.ClientCredentialType = MessageCredentialType.None;
binding.Security.Message.ClientCredentialType = TcpClientCredentialType.Windows;,
Run Code Online (Sandbox Code Playgroud)

另外我应该指出,我从其中一个服务调用中提取了相当多的数据,所以我也把这些(都在http和tcp尝试 - 将maxMessageSize设置为1000000)

binding.MaxReceivedMessageSize = maxMessageSize;
binding.ReaderQuotas.MaxArrayLength = maxMessageSize;
Run Code Online (Sandbox Code Playgroud)

它应该很容易上班,所以我错过了什么?

更新:我将TCP端口808添加到网站标识并再次尝试.现在我收到此错误:

您曾尝试为不支持.Net Framing的服务创建频道.您可能遇到HTTP端点.

wcf iis-6 tcp

21
推荐指数
4
解决办法
7万
查看次数

WCF中的复杂数据类型?

我遇到了一个问题,试图返回一个包含子对象集合的对象,这些对象又可以容纳一组孙对象.我收到一个错误,'连接被主机强行关闭'.

有没有办法让这项工作?我目前的结构类似于:

伪代码:

Person:
IEnumerable<Order>

Order:
IEnumerable<OrderLine>
Run Code Online (Sandbox Code Playgroud)

所有三个对象都具有DataContract属性,我想要公开的所有公共属性(包括IEnumerable)都具有DataMember属性.

我的服务上有多个OperationContract,所有返回单个对象的方法或对象的IEnumerable都可以正常工作.只有当我尝试嵌套IEnumerable时才会变坏.同样在我的客户服务参考中,我选择了通用列表作为我的集合类型.我只想强调一下,只有我的一个操作/方法因此错误而失败 - 其余的操作完美无缺.

编辑(更详细的错误描述):

[SocketException (0x2746): An existing connection was forcibly closed by
the remote host]
[IOException: Unable to read data from the transport connection:
An existing connection was forcibly closed by the remote host.]
[WebException: The underlying connection was closed: An unexpected
error occurred on a receive.]
[CommunicationException: An error occurred while receiving the HTTP
response to http://myservice.mydomain.dk/MyService.svc. This could
be due to the service endpoint binding …
Run Code Online (Sandbox Code Playgroud)

wcf complex-data-types

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