如何在 CanJs 中使用 newVal 触发事件

How to trigger an event with newVal in CanJs

我在尝试使用 newVal 触发 CanJs 事件时卡住了。我有一个如下所示的更改事件:

"{ApplicationShell.AppState.processState.modelExecution} change": function (model, ev, attr, how, newVal, oldVal) {
  if (newVal === "Something"){
  }
}

所以在这里我必须触发这个事件。我可以使用以下代码触发此事件:

can.trigger(ApplicationShell.AppState.processState.modelExecution,"change") 

但是我无法将值传递给已更改事件的 newVal。我试过如下:

can.trigger(Sentrana.ApplicationShell.AppState.processState.modelExecution,"change","abcd"); 

但是这个"abcd"传给了事件方法的attr,没有在newVal参数中。


那么有什么方法可以使用 can 触发器将值传递给 newVal 吗?

是的,我们可以使用 can.trigger() 将值发送到 newVal。

can.trigger(ApplicationShell.AppState.processState.modelExecution,"change",["a","b", "c", "d"])

现在值将像下面这样触发事件:

"a" -> attr
"b" -> how
"c" -> newVal
"d" -> oldVal