为什么在CFC中元素未定义?

时间:2014-08-14 18:23:40

标签: coldfusion cfc cfml coldfusion-11

我有一个相当简单的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中的自定义函数 - 它已经过测试并正常工作

1 个答案:

答案 0 :(得分:7)

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