Обновить неопределенную ошибку для среднего стека?

У меня проблема с некоторым из моего среднего кода стека. Код показан ниже вместе с ошибкой, которую я получаю. У кого-нибудь есть предложения. Кажется, это простая ошибка объявления, но я не могу найти решение

    customersApp.controller('CustomersUpdateController', ['$scope', 'Customers', '$log',
    function($scope, Customers, $log) {
        // Update existing Customer
        this.update = function(updatedCustomer) {
            var customer = updatedCustomer;
            customer.$update(function() {
            $log.info('Made it inside ok');
                //Dont want to take user anywhere else
//              $location.path('customers/' + customer._id);
            }, function(errorResponse) {
                $scope.error = errorResponse.data.message;
            });
        };
    }
]);

Это ошибка:

TypeError: Cannot read property '$update' of undefined
at update (http://localhost:3000/modules/customers/controllers/customers.client.controller.js:115:12)
at http://localhost:3000/lib/angular/angular.js:10880:21
at http://localhost:3000/lib/angular/angular.js:10655:29
at http://localhost:3000/lib/angular-touch/angular-touch.js:441:9
at Scope.$eval (http://localhost:3000/lib/angular/angular.js:12788:28)
at Scope.$apply (http://localhost:3000/lib/angular/angular.js:12886:23)
at Scope.$delegate.__proto__.$apply (<anonymous>:855:30)
at HTMLButtonElement.<anonymous> (http://localhost:3000/lib/angular-touch/angular-touch.js:440:13)
at http://localhost:3000/lib/angular/angular.js:2853:10
at forEach (http://localhost:3000/lib/angular/angular.js:325:18)

Я также получаю сообщение об ошибке {Uncaught TypeError: Cannot read property 'getToggleElement' of null} при загрузке страницы.


person Alex J    schedule 07.12.2014    source источник


Ответы (2)


Любой внешний код, который вызывает функцию update, либо не передает аргумент, либо передает переменную, которая не определена.

Cannot read '$update' of undefined.

относится к customer.$update. Это означает, что customer не определено. Он получает свое значение из любого аргумента, переданного для параметра updatedCustomer, поэтому вам нужно проследить, что вы ожидаете передать для updatedCustomer.

Действительно ли внешний код, вызывающий эту функцию update, передает аргумент во время вызова?

person Luke    schedule 07.12.2014
comment
спасибо... Нашел проблему. Мне просто нужно было поставить customerUpdateCtrl.update(customer); когда все, что у меня было, это customerUpdateCtrl.update();. - person Alex J; 08.12.2014

Дополнительный,

Uncaught TypeError: Cannot read property 'getToggleElement' of null

происходит из ui-bootstrap и не вызывает критических ошибок.

Здесь это упоминается как проблема: https://github.com/angular-ui/bootstrap/issues/2343

Это связано с выпадающим меню.

person Rémi Becheras    schedule 20.04.2015