2016-05-17 6 views
0

Ich habe viele Fragen wie meins gesehen, aber die Antworten scheinen nicht mein Problem zu lösen. Das komische daran ist, dass es vorher funktioniert hat. Wenn ich einen Haltepunkt in dem für den Dialog verwendeten Controller platziere, ist die Variable, die den Wert übergibt, nicht null. Der Wert wird korrekt übergeben, aber immer noch ein unbekannter Anbieter Fehler

Dies ist der Code in meiner Eltern Controller

function addFaq(category, ev){ 

    $mdDialog.show({ 
     controller: 'newfaqController' 
     , templateUrl: './app/components/faq/modals/newFaq.html' 
     , parent: angular.element(document.body) 
     , targetEvent: ev 
     , bindToController: true 
     , clickOutsideToClose: true 
     , locals: { 
      newFaqCategory: category 
     } 
     , controllerAs: vm 
    }).then(function(result){ 
     if(result){ 
      vm.allFaqs.push(result); 
     } 
    }); 

    $scope.$watch(function() { 
     return $mdMedia('xs') || $mdMedia('sm'); 
    }, function (wantsFullScreen) { 
     $scope.customFullscreen = (wantsFullScreen === true); 
    }); 
}; 

Dies sind die ersten Zeilen meines Dialog Controller

angular.module('MyApp').controller('newfaqController', ['$mdDialog', 'newFaqCategory', 'apiFactory', newfaqController]); 
function newfaqController($mdDialog, newFaqCategory, apiFactory) { 
+1

Beziehen Sie sich auf den Controller, der $ mdDialog als VM aufruft? Ich habe Konflikte mit diesem und uns dvm (Dialogansichtsmodell) als Controller-Referenz in $ mdDialog bekommen. –

+0

Großartig, es hat funktioniert. Vielen Dank. Auch meine ng-controller-Direktive aus meiner view.html entfernt. Scheint ein mögliches Problem zu sein – user1008531

Antwort

2

Sind Sie den Controller referenzieren, der $ mdDialog als vm aufruft? Ich habe Konflikte mit diesem und uns dvm (Dialogansichtsmodell) als Controller-Referenz in $ mdDialog bekommen.

Dies ist die Antwort, ich könnte auch "ControllerAs" weg von den Optionen lassen. Hatte aber immer noch vm dvm in meinem Modal-Controller ändern

function addFaq(category, ev){ 

    $mdDialog.show({ 
     controller: 'newfaqController' 
     , templateUrl: './app/components/faq/modals/newFaq.html' 
     , parent: angular.element(document.body) 
     , targetEvent: ev 
     , bindToController: true 
     , clickOutsideToClose: true 
     , locals: { 
      newFaqCategory: category 
     } 
    }).then(function(result){ 
     if(result){ 
      vm.allFaqs.push(result); 
     } 
    }); 

    $scope.$watch(function() { 
     return $mdMedia('xs') || $mdMedia('sm'); 
    }, function (wantsFullScreen) { 
     $scope.customFullscreen = (wantsFullScreen === true); 
    }); 
}; 

Und mein modal Controller

angular.module('MyApp').controller('newfaqController', ['$mdDialog', 'newFaqCategory', 'apiFactory', newfaqController]); 

Funktion newfaqController ($ mdDialog, newFaqCategory, apiFactory) {var dvm = this;

+0

Sie wollen weitermachen und Ihre eigene Antwort akzeptieren, damit diese Frage nicht als offen angezeigt wird? –