0

Ich bin relativ neu zu eckig und ich habe Bootstrap modal zu meinem Projekt integriert, aber ich bin nicht in der Lage, den Wert von "Programmcontroller" zu verwenden.UI-Bootstrap Winkelmodal Auflösung und Scope-Wert

Ich möchte id_program von "programcontroller" innerhalb des "ModalInstanceCtrl" Controller. Ich habe versucht, es in der RESOLVE hinzufügen, aber ich war nicht in der Lage, die Daten zu bekommen.

bekam ich fest einprogrammierte Daten, die die RESOLVE von "programcontroller" erfolgreich innerhalb "ModalInstanceCtrl" Controller modaler verwenden.

Aber da ich den id_prgram mit dieser snipet:

<input type="text" ng-hide=" true" ng-model="id_program" ng-init="id_program=item._id"> 

Der obige Code wird innerhalb ng-Wiederholungsblock und werde bevölkert. Ich weiß, dass es wegen asynchron ist, dass das Problem verursacht.

Ich habe den Code für Ihre Referenz beigefügt.

catalogapp.controller('programcontroller', function ($scope, $uibModal, $log, $routeParams) { 

$scope.id_program = ""; 

$scope.title_program = ""; 

$scope.filter_program = $routeParams.seasonId; 

$scope.season_number = $routeParams.seasonNumber; 

$scope.model = { 
//got this from previous HTML page as routeparams 
    season_id : $routeParams.seasonId 
} 
$scope.animationsEnabled = true; 

$scope.program_array = [ 
    { 
     "_id" : "program:a8097ae943bdbd372906ea494ddecbf2", 
     "series" : "series:fcde9691e624ba50df9be71735f4bb14", 
     "title" : "title1", 
     "season" : "season:a6e4d728c316cdffa933490d4f538251", 

    }, 
    { 
     "_id" : "urn:esp:hbo:program:testprogram20160310", 
     "title" : "title1", 
     "series" : "series:4f19358c7377482f1310e5cfa06c5bd2", 
     "season" : "season:a6e4d728c316cdffa933490d4f538251", 
    } 
] 

$scope.items = [ 
    { 
     "title" : "title", 
     "_id" : "program:version:2541203f297f8f0d", 
     "shortTitle" : "shtitle", 
     "program" : "program:f555feb8dafc1bae42d", 
    }, 
    { 
     "title" : "title2", 
     "_id" : "program:version:40a2313f297f8f0d", 
     "shortTitle" : "shtitle2", 
     "program" : "program:f55asfsa57927411bd6545feb8dafc1bae42d", 
    }, 
    { 
     "title" : "title3", 
     "_id" : "program:version:403f297f8f0d", 
     "shortTitle" : "shtitle3", 
     "program" : "program:asdf5557927411bd6545feb8dafc1bae42d", 
    } 
] 

$scope.open = function (size) { 
    var modalInstance = $uibModal.open({ 
     animation: $scope.animationsEnabled, 
     templateUrl: 'myModalContent.html', 
     controller: 'ModalInstanceCtrl', 
     size: size, 
     backdrop: 'static', 
     resolve: { 
      items1: function() { 
       return $scope.items; 
      } 
     } 
    }); 

    modalInstance.result.then(function (selectedItem) { 
     $scope.selected = selectedItem; 
    }, function() { 
     $log.info('Modal dismissed at: ' + new Date()); 
    }); 
} 

}); 


catalogapp.controller('ModalInstanceCtrl', function ($scope, $uibModalInstance, items1) { 
    $scope.items = items1; 

    $scope.cancel = function() { 
     $uibModalInstance.dismiss('cancel'); 


     }; 
}); 

HTML-Code ist unten angegeben !!!!

<!doctype html> 
<html> 
<head> 
    <title>HBO ESP Console</title> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.9/angular.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.9/angular-animate.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.9/angular-route.js"></script> 
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> 
    <link rel="stylesheet" type="text/css" href="/css/main.css"> 
    <script src="/controllers/programcontroller.js"></script> 


</head> 
<body style="background-color:#44484a"> 
    <h2>Program List</h2> 

    <script type="text/ng-template" id="myModalContent.html"> 
     <body ng-controller="ModalInstanceCtrl"> 
      <div class="modal-header"> 
       <h3 class="modal-title">Program Version</h3> 
      </div> 
      <div class="modal-body" style="float:left"> 
       <ul ng-repeat="item in items" style="list-style-type:none"> 
        <li class="image"> 
         <button type="button" style="background-color: #555555" class="btn btn-default"> 
          <img ng-src="http://icons.iconarchive.com/icons/atti12/tv-series-folder/512/Game-of-Thrones-icon.png" height="200" width="200" /> 
         </button> 
        </li> 
       </ul> 
      </div> 
      <div class="modal-footer"> 
       <button class="btn btn-warning" type="button" ng-click="cancel()">Cancel</button> 
      </div> 
     </body> 
    </script> 

    <div ng-controller="programcontroller"> 
     <input ng-hide=" true" type="text" ng-model="filter_program"><br><br> 
     <p ng-hide=" true">Season_id: {{model.season_id}}</p> 
     <p style="font-size:18px">Season Number:{{season_number}}</p> 
     <div style="float:left"> 
      <div style="float:left"> 
       <ul ng-repeat=" item in program_array | filter : filter_program" style=" list-style-type:none;float:left"> 
        <li class="image"> 
         <input type="text" ng-hide=" true" ng-model="id_program" ng-init="id_program=item._id"> 
         <input type="text" ng-hide=" true" ng-model="title_program" ng-init="title_program=item.title"> 
         <button type="button" style="background-color: #555555" class="btn btn-default" ng-click="open('lg')"> 
          <img ng-src="http://icons.iconarchive.com/icons/atti12/tv-series-folder/512/Game-of-Thrones-icon.png" height="200" width="200" /> 
         </button> 
         <p>{{item.title}}</p> 
         {{id_program}} 
        </li> 
       </ul> 
      </div> 
     </div> 
    </div> 
</body> 
</html> 

Bitte helfen Sie mir mit diesen Jungs !!!!!! Dank

+0

Hallo können Sie einen Link zu Codepen oder JSBin mit Ihrem Code hinzufügen? – Rishab777

Antwort

0

Sie versuchen, auf den Filterwert zuzugreifen, noch bevor eckig ihn verarbeitet hat.

Hier ist die Lösung

<ul ng-repeat="it in itm"> 
<li> 
    {{it._id}} 
    <input type="text" ng-hide="true" > 
    <button type="button" class="btn btn-default" ng-click="setFilter(it._id);open('lg')">Large modal --- {{it._id}}</button> 
</li> 
</ul> 

-Controller

$scope.setFilter = function (filterValue) { 
    $scope.filter = filterValue; 

}

Hier ist die Plunkr

hoffe, das hilft !!

+0

Funktioniert immer noch nicht !!! alle Abhängigkeiten sind auf dem neuesten Stand und nicht belästigt zu werden, denke ich, während ich die Dinge nochmal überprüfe ... !! – Monish

+0

Können Sie einen Plunkr oder JSBin oder Codepen mit Ihrem Code erstellen? – Rishab777

+0

http://plnkr.co/edit/36qe1s0UtNc1GPs1ZNAB?p=preview – Monish

0

entfernen ng-Controller = "ModalInstanceCtrl" von

<script type="text/ng-template" id="myModalContent.html"> 

und sehen, was passiert.

+0

Immer noch nicht funktioniert !! – Monish

+0

Werfen Sie einen Blick auf diese Plunker http://plnkr.co/edit/QUIFQMqkI256EYpHKRPS?p=preview und lassen Sie mich wissen, wenn Sie eine Erklärung benötigen. Das Problem war, dass id_program eine Zeichenkette ist und an mehrere Eingaben in ng-repeat gebunden ist. – sdfacre