angularjs对象不是函数错误

时间:2014-07-02 04:53:32

标签: angularjs

我正在尝试将转发器数组项作为参数发送到web api控制器方法。当我单击包含该功能的按钮时,它在控制台中给出了我的错误,没有任何反应。

object is not a function

我想我正以错误的方式传递orders数组。如何正确地做到这一点。

我的重复

    <table class="table table-bordered table-hover" style="width:800px" data-ng-model="orderProduct">
            <tr data-ng-repeat="order in orders">
                <td>{{selectedProduct.pname}}</td>
                <td>{{order.pid}}</td>
                <td>{{order.oid}}</td>
                <td>{{order.qty}}</td>
                <td>{{order.total}}</td>
            </tr>
        </table>
        <input type="button" data-ng-click="addOrder()" class="btn btn-danger" data-ng-disabled="!orders.length" value="Submit Orders" />

我的控制器方法$ scope

    $scope.addOrder = function () {
            var orders = this.orders;
            $http.post('/api/OrderDetails/', orders).success(function (data) {
                alert("Added Successfully!!");
                $scope.addMode = false;

            }).error(function (data) {
                $scope.error = "An Error has occured while Adding Order details! " + data;

            });
        };

2 个答案:

答案 0 :(得分:1)

考虑了一下这条线

object is not a valid function

和firefox的另一个错误

fnPtr is not a function

在我的脑海里突然嗡嗡作响,我的功能命名可能有点可疑。我想这很愚蠢,但是在将函数名从addOrder()更改为addorder()之后,就是在用小'o'替换大写'O'之后,错误已经消失并且一切正常。和平!!

答案 1 :(得分:1)

我从你的插图中得知的是 - 表格名称和控制器的方法名称不能相同。我将表单名称从 addOrder 更改为 addOrderForm 名称更改后,这可以正常工作。 请在此处查看工作内容:http://plnkr.co/edit/CfaNY9z5vVMi5uqh5v7k?p=preview

PS:我已经冒昧地添加了一些json和angular代码来使表单正常工作。