2016-05-28 6 views
5

Mam problem z materialnym dialogiem md. To jest codepen (http://codepen.io/anon/pen/EyxyXj) mojej aplikacji. Po otwarciu okna dialogowego, a następnie kliknięciu przycisku "zapisz", utworzę kartę. Dlaczego dane w formularzu wejściowym nie są zapisywane na karcie? Myślę, że są pewne problemy z zakresem. Czy ktoś może mi pomóc?Jak korzystać z okna dialogowego md z formularzem wprowadzania w angularjs?

.then(function(answer) { 
     questList.allsQ.push({ 
     titolo: questList.titolo , 
     capitolo: questList.capitolo, 
     descrizione: questList.descrizione, 
     importo: questList.importo, 
     data: questList.data 
     }); 
     questList.titolo = ''; 
     questList.capitolo = ''; 
     questList.descrizione = ''; 
     questList.importo = ''; 
     questList.data = ''; 
} 

Funkcja "push" działa, ale wszystkie właściwości są niezdefiniowane po kliknięciu Zapisz. Dziękuję wszystkim.

Odpowiedz

2

Popraw NG-modelu danej dziedzinie wejściowego HTML jak poniżej

<md-input-container class="md-block" flex-gt-xs=""> 
    <label>Titolo</label> 
    <input ng-model="questList.titolo" size="30" placeholder="inserisci il titolo"> 
</md-input-container> 

Trzeba zdać dane aktualizowane w modelu ukryć() funkcji, jak poniżej.

.controller('DemoCtrl', function($scope, $mdDialog, $mdMedia) { 
    $scope.status = ' '; 
    var questList = this; 
    questList.allsQ = []; 
    questList.openDialog = function($event) { 
     $mdDialog.show({ 
     controller: function ($timeout, $q, $scope, $mdDialog) { 
       var quest =this; 
       // you will be returning quest 

       $scope.cancel = function($event) { 
       $mdDialog.cancel(); 
       }; 
       $scope.finish = function($event) { 
       $mdDialog.hide(); 
       }; 
       $scope.answer = function() { 
       //pass quest to hide function. 
       $mdDialog.hide(quest); 
       }; 
       }, 
     controllerAs: 'questList', 
     templateUrl: 'dialog.tmpl.html', 
     parent: angular.element(document.body), 
     targetEvent: $event, 
     clickOutsideToClose:true, 
     locals: {parent: $scope}, 
     }) 
    .then(function(quest) { 

     //here quest has data you entered in model 
     questList.allsQ.push({ 
     titolo: quest.titolo , 
     capitolo: quest.capitolo, 
     descrizione: quest.descrizione, 
     importo: quest.importo, 
     data: quest.data 
     }); 
     questList.titolo = ''; 
     questList.capitolo = ''; 
     questList.descrizione = ''; 
     questList.importo = ''; 
     questList.data = ''; 
     console.log(questList.allsQ); 
     console.log(questList.allsQ.length); 
    }); 
    }; 
    }); 
+0

dziękuję bardzo! – litas

2

Odpowiedź mam zamiar dostarczyć na pewno nie jest najlepszą odpowiedzią, ale to jest coś, co działa

usunąć ng przesłać z szablonu MD-dialogowe przycisku Salva dodać ng-click="answer(questList)" i zrobić swoją Push jak ten

questList.allsQ.push({ 
    titolo: answer.titolo , 
    capitolo: answer.capitolo, 
    descrizione: answer.descrizione, 
    importo: answer.importo, 
    data: answer.data 
    }); 

jest przykładem i rozwidlony swój codepen

http://codepen.io/tougo/pen/QEWGKv

+0

dziękuję bardzo! – litas