【问题标题】:Uncaught TypeError: value.CommentTypes.join is not a function Angular未捕获的 TypeError:value.CommentTypes.join 不是 Angular 函数
【发布时间】:2019-09-18 20:12:23
【问题描述】:

在 angularjs 中,我使用一种方法调用不同的方法,有时它以数组形式获取值,而从另一个地方它获取不在数组中的简单值。

我的方法是:

function fillReviewObject() {
    angular.forEach(vm.surveyQuestion, function (value, key) {
        value.CommentTypes = value.CommentTypes.join(',');
    });
}

值是对象我从“值”对象中获取“评论类型”的值。当我以数组格式传递值时,

CommentTypes Array(1)[2] 

长度为 1 且值为“2”的注释类型数组。它在我的代码中运行良好。

但是当我以这种方式传递 Value 对象时,

CommentTypes = 2

这里不是数组格式,给我类型错误。

希望您的建议!

【问题讨论】:

  • 只能对数组使用join方法,否则该函数不存在。在使用 join 函数之前尝试检查该值是否为数组,可能是这样的:value.CommentTypes = Array.isArray(value.CommentTypes) ? value.CommentTypes.join(',') : value.CommentTypes;
  • Michal 我正在尝试这样做,但我无法通过检查它是否为数组来解决它。所以我做了另一种我不愿意做的方法:(
  • 为什么需要做另一个功能?不能用Array.isArray()函数吗?
  • 迈克尔感谢它有效!
  • 很高兴听到这个消息!我在下面添加了它作为答案。

标签: arrays angularjs angular model-view-controller typeerror


【解决方案1】:

只能对数组使用join方法,否则该函数不存在。在使用 join 函数之前尝试检查该值是否为数组,可能是这样的:value.CommentTypes = Array.isArray(value.CommentTypes) ? value.CommentTypes.join(',') : value.CommentTypes;

【讨论】:

    猜你喜欢
    • 2018-11-05
    • 2019-05-16
    • 1970-01-01
    • 2017-07-20
    • 2019-09-26
    • 2015-12-29
    • 2021-09-09
    • 2017-07-31
    • 2016-11-02
    相关资源
    最近更新 更多