【问题标题】:Angular TypeError: Cannot read property 'icon' of undefinedAngular TypeError:无法读取未定义的属性“图标”
【发布时间】:2015-10-05 09:16:41
【问题描述】:

如何处理 Angular 上的空输入?

我想在后端而不是前端验证。但是当我提交它时,如果我让它在图标输入时为空,则会返回错误

 TypeError: Cannot read property 'icon' of undefined

这是我的表格:

 <div class="form-group">
                    <div class="form-material form-material-danger">
                        <input class="form-control" type="text" id="name" ng-model="menu.name" placeholder="Menu Name.." empty-to-null>
                        <label for="name">Name</label>
                    </div>
                </div>
                <div class="form-group">
                    <div class="form-material form-material-danger">
                        <input class="form-control" type="text" id="icon" ng-model="menu.icon" placeholder="Menu Icon.." >
                        <label for="icon">Icon</label>
                    </div>
                </div>

这是我的代码:

 var data = {
            icon: $scope.menu.icon,
            name: $scope.menu.name
        };

        AdminMenu.save(data, function (response) {
            console.log(response);
            $scope.menu = null;
            ResultService(response);
            $scope.dtInstance.reloadData();
        }, function (response) {
            ResultService(response.data);
        })
            .$promise.finally(function () {
                $scope.button_text = "Store";
                $scope.loading = false;
            });

【问题讨论】:

  • 这个例子并不完整menu 对象在哪里创建,data 对象在哪里使用?
  • 嗨。范围菜单来自视图。我只是从 ng 模型中获取它。数据对象是从前端的输入中获取的。 @克莱斯
  • 好的,感谢您告诉我,但这仍然不是可以测试以重现您的问题的代码示例。

标签: javascript angularjs


【解决方案1】:
$scope.menu = null

当您将 menu 设置为 null 时,angular 无法再找到 menu.icon。如果你想“重置”它,你应该做$scope.menu = {}

当然,在使用之前不要忘记初始化$scope.menu

【讨论】:

  • 我不想重置它。我只想如果我按下提交,它会提交到后端并从后端返回错误。现在如果我提交,它返回我未定义
  • 那么$scope.menu = null的目的是什么?
  • 提交后。它重置了表格。现在错误在 var data = {icon: $scope.menu.icon}
  • 因为 $scope.menu 在访问它之前没有定义...在数据之前定义$scope.menu = {}
猜你喜欢
  • 2020-02-22
  • 1970-01-01
  • 2014-11-29
  • 2018-10-29
  • 2021-07-21
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多