类型错误:无法读取未定义的属性“push”,JavaScript

2023-11-25

我正在这个 Angular 项目中工作,用户提交评论表单,新评论将添加到已发布的评论中。这是我的代码。

.controller('productCtrl', function($scope, $http, $routeParams, Page){
$scope.product = {};
$scope.review = {};
$scope.comments = {};

routeparm = $routeParams.param;

$scope.review = function(){
    var review_box = $scope.review_form.review_box;

    $http.post('./comment.php', {
        comment : review_box,
        code: routeparm
    })

    .success(function(data){
            $scope.comments.push(data.comments);
            $scope.review.review_box = '';
    })

    .error(function(data){
        $scope.has_error = true;
        $scope.error_message = data;
    })

};

但是,当我尝试添加评论时,出现以下错误。

TypeError: Cannot read property 'push' of undefined

我定义了一个空的 $scope.comments = {};那么为什么我会收到此错误?我该如何解决它?谢谢


您声明的注释是一个对象。只需将您的声明更改为数组即可,

From:

$scope.comments = {};

To:

$scope.comments = [];

EDIT:如果您需要推送新对象,您需要将注释作为对象数组,如下所示并推送新对象

$scope.comments = { 
    1: {name:'',review:'',comment:'',uptime:'',gravatar:''}
}

 $scope.comments.push({name:'rukshi', review:'test comment',comment:'yet another comment',uptime:'',gravatar:''});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型错误:无法读取未定义的属性“push”,JavaScript 的相关文章

随机推荐

  • 如何将对象传递给 Scala 中的方法

    如何将对象的引用传递给 Scala 中的方法 例如 我想要这个编译 object Constants val constantA Double def calc numbers Seq Double Constants does not c
  • 屏蔽 QLineEdit 文本

    我在用PyQt4 QLineEdit小部件接受密码 有一个setMasking属性 但不遵循如何设置掩码字符 editor QLineEdit editor setEchoMode QLineEdit Password
  • 如何在 iOS 中更改 cordova-camera-plugin 语言?

    我想改变cordova camera plugin语言 显然 它取决于多种因素 我的开发环境是 Visual Studio 2015 中的 Tools for Cordova 这不太重要 但我在我的应用程序中使用 Ionic 框架 我们在运
  • 粗体标题边框

    我尝试做 UIManager getDefaults put TitledBorder font Font BOLD contentPanel setBorder new TitledBorder Client Downloader 但这并
  • 在另一个 div 上使用滚轮时滚动一个 div [重复]

    这个问题在这里已经有答案了 假设我有 2 个并排的 div 两者都是 400px x 400px 并且溢出设置为自动 里面的内容高度超过400px所以有垂直滚动条 当鼠标悬停在左侧的 div 上并且用户使用鼠标滚轮滚动时 我希望另一个 di
  • 如何在shell中获取SVN头版本号?

    我在命令行中使用 svn 如何在命令行中获取头版本号 我需要这个号码 不仅仅是为了查看信息 我想用这个数字来自动构建我的项目 正如下面的评论提到的 这可以通过在较新的 SVN 客户端中使用以下命令来实现 svn info rHEAD sho
  • UIButton 在 iOS7 中点击时不显示突出显示

    我看过大量有关类似事物的帖子 但没有一个完全匹配或解决这个问题 从 iOS 7 开始 每当我添加UIButton to a UITableViewCell或者甚至对于页脚视图来说 它工作得 很好 这意味着它接收到目标操作 但它不会显示当您点
  • 如何在 Perl 中对 HTTP GET 查询字符串进行编码?

    这个问题有点相关在 Perl 中发出 HTTP GET 请求的最简单方法是什么 在通过以下方式提出请求之前LWP Simple我有一个需要序列化 转义的查询字符串组件的哈希值 对查询字符串进行编码的最佳方法是什么 它应该考虑空格以及有效 U
  • 在 GCC 中指定代码的节名称

    我知道 GCC 让你使用 attribute section mysection 函数定义指定将代码放入哪个部分 我有一堆代码需要放入特定部分 并且必须用它来装饰每个函数是相当乏味的 有没有办法在命令行上全局指定代码放置在哪个部分的同时编译
  • 如何指定AddIn进程名称?

    我正在使用 Microsoft AddIn Framework 加载 AddIn 程序集 我在自己的进程中运行它们 以便将它们与服务分开 我不喜欢每个 AddIn 进程在任务管理器中显示为 AddInProcess32 exe 使用进程隔离
  • git - 如何从我当前的提交中删除太大的文件[重复]

    这个问题在这里已经有答案了 当我执行以下操作时 git add git commit m msg git push origin develop 我收到以下错误 Counting objects 25 done Delta compress
  • 在node/express + ejs中将对象传递给客户端?

    我有一个相当大的对象 需要将其传递给客户端脚本中的函数 我尝试过使用 JSON stringify 但这种方法遇到了一些问题 主要与性能相关 在ejs中可以做这样的事情吗 app get load function req res var
  • C++挂钩到不同的应用程序,如何从进程ID中查找线程ID?

    我想向应用程序添加一个钩子 我在用SetWindowsHookEx我可以创建一个系统范围的挂钩 但我想为特定应用程序创建一个挂钩 我需要目标应用程序的线程 ID 才能挂钩它 我知道窗口的标题 我知道 exe 名称 从这些我可以获取窗口句柄和
  • 如何在Python中使用不带0x的hex()?

    The hex python中的函数 放置前导字符0x在号码前面 有没有办法告诉它不要放它们 所以0xfa230将fa230 代码是 import fileinput f open hexa w for line in fileinput
  • SQLite 长到宽格式?

    我想知道是否有一种规范的方法可以在 SQLite 中将数据从长格式转换为宽格式 该操作通常在关系数据库领域吗 我试着跟随这个例子对于 MySQL 但我猜 SQLite 没有相同的 IF 结构 谢谢 IF是一个非标准的 MySQL 扩展 最好
  • 带和不带箭头的 UML 聚合

    我一直认为 UML 聚合被定义为路径开头的黑色 实心 菱形 结尾处没有箭头 MyA lt gt MyB 今天我遇到了这样的符号 lt gt gt 右端有一个明确的箭头 所以我在 UML 2 4 规范中查找 实际上找到了两个版本的参考资料 我
  • 更改 R Shiny 中 selectInput 的背景颜色

    我的示例代码 library shiny server lt function input output ui lt fluidPage br selectInput select1 Choose c Alt1 1 Alt1 2 selec
  • 同步对易失性字段的写访问(廉价读写块)

    假设我有以下课程将被大量阅读 但只是偶尔写入 它将在多线程 Web 应用程序中使用 因此它需要是线程安全的 public class Foo private volatile String foo public String getFoo
  • 在Java中,如何同时遍历两个列表?

    E g for String str list1 for String str list2 假设我们确信list1 size equals list2 size 如何一次性遍历这两个列表for陈述 也许像for String str1 li
  • 类型错误:无法读取未定义的属性“push”,JavaScript

    我正在这个 Angular 项目中工作 用户提交评论表单 新评论将添加到已发布的评论中 这是我的代码 controller productCtrl function scope http routeParams Page scope pro