2

我了解当@observable任一变量或属性的值发生变化时,变量或属性将能够与 HTML 对应项同步。

我没有得到的是@observable 功能的目的/意义一般和随意的 例子

@observable bool show() {
  if (sillyword != '' && adjective != '' &&
      animal    != '' && bodypart  != '' &&
      verb      != '' && adverb    != '') {
    return true;
  } else {
    return false;
  }
}

及其对应的 HTML:

<template instantiate="if show()">
  <p>Dear Ms. {{sillyword}},</p>

  <p>Little {{adjective}} Billy missed school
  because he was sick with wild-{{animal}} flu.
  His {{bodypart}} swelled up and fell off.
  He can no longer {{verb}}.</p>

  <p>Most {{adverb}} yours, Billy's mother</p>
</template>

以及在什么样的情况下@observable功能有用的?

4

1 回答 1

1

理论上,@observablebeforeshow()函数决定了是否<template>被激活。如果show()开始返回true,可能是因为sillyword,adjective等都变成了非空字符串,<template>就会被激活。

无论如何,这是一般原则,

但是,在这个特定示例中,其中使用的所有字符串也都被标记为@observable

@observable String sillyword='';
@observable String adjective='';
@observable String animal='';
@observable String bodypart='';
@observable String verb='';
@observable String adverb='';

这使得@observable之前的声明变得show()不必要。如果您删除该特定@observable的,代码仍然有效。

于 2013-07-10T17:12:14.713 回答