3

全部,我可以在规则正文中运行多个缺陷吗?还是我只能运行一个?

4

3 回答 3

3

您可以根据pre需要在规则块中定义任意数量的操作。您可以在规则的操作块中包含任意数量的操作(只需将操作块括在花括号中)。例如,

rule first_rule {
  select when pageview ".*" setting ()
  pre {
    notify_one = defaction() { notify("notify_one", "First defaction"); };
    notify_two = defaction() { notify("notify_two", "Second defaction"); };
  }
  {
    notify_one();
    notify_two();
  }
}

所以我认为你的问题的答案是肯定的。

于 2011-04-07T06:08:06.143 回答
2

你的问题有点令人困惑,但我会试一试。

运行定义的defaction动作就像运行系统定义的动作。

如果您想在规则中运行多个操作,则需要将它们包装在 {} 中,如下所示:

rule foo {
  select when pageview ".*"
  {
    notify("cheese", "brie");
    notify("apple", "golden delicious");
  }
}
于 2011-04-07T06:09:55.740 回答
1

我似乎记得一个defaction有一个隐含的、可选的“pre”部分,然后是action(s)。正如 Sam 所说,要包含多个操作,您确实需要 {}。

act1 = defaction() {
  {
    notify("Defaction Demo", "<ul id='demo_id'></ul>");
    append("#demo-id", "<li>cheese: brie</li>");
    append("#demo-id", "<li>apple: golden delicious</li>");
  }
};

这可以解决,defaction() { { ... } };但如果你想在一个defaction中执行多个操作,则需要额外的花括号。

另请参阅http://docs.kynetx.com/docs/Defaction

于 2011-04-07T16:18:30.057 回答