代码之家  ›  专栏  ›  技术社区  ›  Carl

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

  •  1
  • Carl  · 技术社区  · 10 年前

    我有一个相当简单的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 回复  |  直到 10 年前
        1
  •  7
  •   Brad Wood    10 年前

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