1

我有一个相当简单的 CFC,它有一组属性,然后是一些与这些属性相关的基本功能。一切似乎都工作正常,除了一个属性是一个数组......

property name="tags" type="array";

这是属性的简单声明。但是,当我尝试在其中一个成员函数中对其执行操作时,出现错误...

public void function addTag(thisTag) {
    var local.tags = this.getTags();
    if (thisTag.isObjectValid()) {          
        *ArrayAppend(local.tags,arguments.thisTag);*
        this.setTags(local.tags);
    }
}

带星号的行是我出错的地方(星号不在代码中)

Element TAGS is undefined in LOCAL.

我究竟做错了什么?

附加信息:

  1. accessors="true" 在组件声明中设置
  2. isObjectValid 是另一个 CFC 中的自定义函数 - 它已经过测试并且可以工作
4

1 回答 1

7

您尚未为 tags 属性设置默认值,因此它为 null 或未定义。您需要给它一个默认值,或者在尝试访问它之前在构造函数中分配一个值。或者,您可以照原样继续,但您需要执行 isNull(local.tags) 来检查它是否已初始化。

于 2014-08-14T19:18:15.990 回答