2017-02-07 8 views
1

ich Code unten habe in meinem Controller geschriebenAngularJS - Funktion nicht aufgerufen?

function SteppersDemoCtrl($mdStepper, $timeout) { 
    alert('hi'); 
    this.$mdStepper = $mdStepper; 
    this.$timeout = $timeout; 
    this.isVertical = true; 
    this.isLinear = false; 
    this.isAlternative = true; 
    this.isMobileStepText = true; 
    this.campaign = false; 
} 

SteppersDemoCtrl.prototype.previousStep = function() { 
    alert("Hariom");  
    var steppers = this.$mdStepper('stepper-demo'); 
    steppers.back(); 
}; 
SteppersDemoCtrl.prototype.cancel = function() { 
    var steppers = this.$mdStepper('stepper-demo'); 
    steppers.back(); 
}; 
SteppersDemoCtrl.prototype.nextStep = function() { 
    var steppers = this.$mdStepper('stepper-demo'); 
    steppers.next(); 
}; 
SteppersDemoCtrl.prototype.toggleMobileStepText = function() { 
    this.isMobileStepText = !this.isMobileStepText; 
}; 
SteppersDemoCtrl.prototype.toggleLinear = function() { 
    this.isLinear = !this.isLinear; 
}; 
SteppersDemoCtrl.prototype.toggleAlternative = function() { 
    this.isAlternative = !this.isAlternative; 
}; 
SteppersDemoCtrl.prototype.toggleVertical = function() { 
    this.isVertical = !this.isVertical; 
}; 
SteppersDemoCtrl.prototype.showError = function() { 
    var steppers = this.$mdStepper('stepper-demo'); 
    steppers.error('Wrong campaign'); 
}; 
SteppersDemoCtrl.prototype.clearError = function() { 
    var steppers = this.$mdStepper('stepper-demo'); 
    steppers.clearError(); 
}; 
SteppersDemoCtrl.prototype.showFeedback = function() { 
    var steppers = this.$mdStepper('stepper-demo'); 
    steppers.showFeedback('Step 1 looks great! Step 2 is comming up.'); 
}; 
SteppersDemoCtrl.prototype.clearFeedback = function() { 
    var steppers = this.$mdStepper('stepper-demo'); 
    steppers.clearFeedback(); 
}; 

SteppersDemoCtrl.$inject = [ 
    '$mdStepper', 
    '$timeout' 
]; 


sureApp.controller('SteppersDemoCtrl', ['$scope', '$http', '$location', '$log', '$interval', 'uiGridConstants', 'sureHttpService', 'sureCache' 
    , function ($scope, $http, $location, $log, $interval, uiGridConstants, sureHttpService, sureCache) { 




     $scope.templates = []; 
     $scope.selectedTemplate = {}; 
     $scope.fetchPathTemplates = function() { 
     var restUrl = "SomeURL" 
     sureHttpService.sureAjaxService(restUrl, false, false, false).then(function (response) { 
      if (response && response.collection && response.collection.element) { 
       $scope.templates = response.collection.element; 
       console.log("rssssssssss >>>"+$scope.templates); 
      } else { 
       // column attrubute response data error 
      } 
     }, function (error) { 
      alert("error code " + error) 
     }); 
    } 
}]); 

Ich versuche, so zu nennen, aber Klicken auf die Schaltfläche selectCampaign() nicht nennen, und es ist kein Fehler in Protokoll. Ich bin in der Lage fetchPathTemplates()

<div ui-view ng-controller="SteppersDemoCtrl as vm" layout="column"> 
..................................................... 
..................................................... 
<button ng-click="vm.nextStep();">Continue</button> 
+0

Wo ist Ihre Funktion 'vm.selectCampaign()' definiert? Es ist nicht vorgesehen. – lin

+0

Es gibt keine selectCampagin() -Funktion in Ihrem Controller deklariert – Roux

+0

Entschuldigung, das war ein Tippfehler –

Antwort

0

Sie sollten Ihre Methoden als Eigenschaften des $scope aufrufen, um definieren, sie aus der Sicht aufrufen, brauchen sie nicht prototype an den Controller hinzugefügt werden.

Controller:

angular.module('myapp').controller('myCtrl', myCtrl); 

myCtrl.$inject = ['$scope']; 

function myCtrl($scope) { 
    $scope.myMethod = function() { 
     console.log('this works'); 
    } 
} 

anzeigen Code:

<div ng-controller="myCtrl as vm"> 
    <button ng-click="vm.myMethod();">Test</button> 
</div> 
+0

Aber in meinem Code habe ich jetzt prototype meinst du ich muss all das entfernen? –

+0

Ja, leider. – danwellman

+0

Hat das überhaupt geholfen? – danwellman

Verwandte Themen