2017-03-31 2 views
0

In der Direktive haben wir $scope.checkValue = true gesetzt, und der gleiche Bereich wird an den Modal-Dialog von ngstrap übergeben.Checkbox aktualisiert das Modell nicht im modalen Ngstrap-Dialog

unten ist der Code von Richtlinie Link-Funktion, die auf die Schaltfläche klicken und Popup den Dialog aufgerufen:

return { 
     templateUrl: "../Views/userSubscriptionView.html", 
     restrict: 'E', 
     scope: {}, 
     link: function ($scope, element, attributes) { 
$scope.checkValue = false; //this is bind to checkbox model but not updating on check/uncheck. 
    function DoOpenDialog() 
    { 
     //other code 
     var myOtherModal = $modal({ scope: $scope, templateUrl: "../Views/SubscribePopup.html", show: false , persist:false}); 
           myOtherModal.$promise.then(myOtherModal.show); 
    } 

Im Folgenden wird der Code von Dialog:

<input type="checkbox" ng-model="checkValue"/> 
{{checkValue}} 

Das Problem ist: wenn ich Aktivieren Sie das Kontrollkästchen auf "True" oder "False", das Modell "checkValue" wird nicht aktualisiert. Ich muss den Zustand der anderen Kontrolle auf der Grundlage des Checkbox-Check-Status ändern.

Dank

+0

poste deinen Direktivencode, um mehr zu helfen. – Aravind

+0

Ohne weiteren Code ist es unmöglich, sicher zu wissen, um welches Problem es sich handelt, aber es ist wahrscheinlich, dass Sie Probleme aufgrund von [JavaScript Prototype Inheritance] haben (http://stackoverflow.com/questions/14049480/what-are-the -nuances-of-scope-prototypisch-prototypisch-Vererbung-in-angularjs). Im Allgemeinen sollten Sie ** immer einen Punkt in eckigen Bindungen ** verwenden. – Claies

+0

Aktualisierter Beitrag mit weiteren Details. –

Antwort

0

ich dies die ng-true-value und ng-false-value Eigenschaften festlegen, indem Sie explizit verwenden zu lösen:

um 'true'
<input type="checkbox" 
    ng-true-value="'true'" 
    ng-false-value="'false'" 
    ng-model="checkValue" 
/> 

Beachten Sie die einfachen Anführungszeichen. Letztendlich wird alles als Strings übergeben, nicht als Booleans oder Integers. Ich benutze den gleichen Ansatz, wenn ich mit einem booleschen (tinyint) 0/1-Wert von mysql umgehen muss: ng-true-value="'1'" und so weiter.

Verwandte Themen