Как мне вызвать функцию, которая уже объявлена в контроллере angularjs?

0

Я уже определил функцию в контроллере angularjs. Но если я назову его где-то в том же контроллере, он не работает.

controller.js

function ManageProductController($http, $scope, $mdDialog, $document, $location, $localStorage)
{
     var vm = this;
     vm.uid = $localStorage._id;

        vm.purchased = '';
        $scope.Types = [{code:1, type:'Available Items'}, {code:2, type:'Purchased Items'}, {code:3, type:'Guest Contributed'}, {code:4, type:'Full List'}];

        $scope.update();


        $scope.update = function() {
            if($scope.selectedCode == 1){
                vm.purchased = "yes";
            }else if($scope.selectedCode == 2){
                vm.purchased = "";
            }else{
                vm.purchased = "no";
            }

     $http({
            url: 'http://localhost:7200/api/manage-product',
            method: 'POST',
            data: {userId:vm.uid, code:vm.purchased}
        }).success(function(res) {
            //$scope.productlist = res;
            //console.log(vm.result);

            vm.result = res.result;
            vm.count=vm.result.length;
            //console.log(vm.result);

            if(vm.count == 0){
                vm.showMessage = true;
            } else {
                vm.result=res.result;   
                vm.showMessage = false; 

            }

            //console.log(vm.result);
            //vm.docs=res.docs;
        }, function(error) {
            console.log(error);
            alert('here');
        });
    };
  }

В приведенном выше коде $scope.update(); не работает. Я искал так много вещей в google, но они вызвали одинаково, но в моем случае это не работает. Я не знаю, где я ошибаюсь.

  • 5
    Вы имеете в виду $scope.update(); ? Вы называете это, прежде чем объявить это
  • 0
    да, это была проблема. Спасибо
Теги:

1 ответ

1

Поскольку @svarog сказал, что вы вызываете функцию перед ее объявлением, попробуйте это.

function ManageProductController($http, $scope, $mdDialog, $document, $location, $localStorage)
{
   var vm = this;
   vm.uid = $localStorage._id;
   vm.purchased = '';

   $scope.Types = [{code:1, type:'Available Items'}, {code:2, type:'Purchased Items'}, {code:3, type:'Guest Contributed'}, {code:4, type:'Full List'}];

   $scope.update = function() {
        if($scope.selectedCode == 1){
            vm.purchased = "yes";
        }else if($scope.selectedCode == 2){
            vm.purchased = "";
        }else{
            vm.purchased = "no";
        }
        $http({
            url: 'http://localhost:7200/api/manage-product',
            method: 'POST',
            data: {userId:vm.uid, code:vm.purchased}
        }).success(function(res) {
        //$scope.productlist = res;
        //console.log(vm.result);
        vm.result = res.result;
        vm.count=vm.result.length;
        //console.log(vm.result);

        if(vm.count == 0){
            vm.showMessage = true;
        } else {
            vm.result=res.result;   
            vm.showMessage = false; 
        }
        //console.log(vm.result);
        //vm.docs=res.docs;
        }, function(error) {
            console.log(error);
            alert('here');
        });
    };
    $scope.update();
}
  • 0
    да все нормально. Но он не собирается `if ($ scope.selectedCode == 1) {vm.purchased =" yes ";` и напрямую переходит к `vm.purchased =" no ";`. Что мне теперь делать?
  • 0
    я исправил проблему, спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню