2016-03-27 4 views
2

Я все еще новичок в angularJs. Я пытаюсь передать значение переменной из страницы html на другую страницу (на самом деле модальный). Каждая из страниц имеет один и тот же контроллер. Поможет мне диагностировать рь пожалуйста

Html стр.1:

<button type="submit" class="btn btn-primary pull-right" 
         data-ng-click="ctrl.nextOperation(chosenProducts,'lg')">Next</button> 
       </div> 

app.js:

self.nextOperation = function(chosenProducts,size) 
{ 
    $scope.chosenProducts= chosenProducts; 
    $scope.product = chosenProducts[0]; 
    console.log($scope.product.nameProduct); 
    console.log("test test nextt Operation "+chosenProducts[0].nameProduct);  
    var modalInstance = $uibModal.open({ 
     animation : $scope.animationsEnabled, 
     templateUrl : 'partials/operation.html', 
     controller : 'ProductsController', 
     scope : $scope, 
     size : size, 
     resolve : { 
         } 
    }); 

}; 

Page 2:

<table> 
      <tbody> 

       <tr class="cake-bottom" > 
       <td class="cakes">     
        <div class="product-img2"> 
        </div> 
       </td> 
       <td class="cake-text"> 
        <div class="product-text"> 
         <h3>{{product.nameProduct}}</h3> 
         <p>Product Code: {{product.numSerie}}</p> 
        </div> 
       </td> 
       <td class="quantity">     
        <div class="product-right"> 
        <input min="1" type="number" id="quantity" name="quantity" value="" class="form-control input-small">     
        </div> 
       </td> 
       <td> 
        <h4>{{product.price}}</h4> 
       </td> 
       <td class="btm-remove"> 
       <div class="close-btm"> 
        <h5>Remove</h5> 
       </div> 
       </td> 


       </tr> 
      </tbody> 
     </table> 
+0

Посмотрите это http://stackoverflow.com/a/33164461/178163 Попробуйте получить доступ к нему, например: {{$ parent.product. price}} –

+0

Доступ через $ parent невелик. Вы делаете высокосвязное приложение, которое всегда плохо. –

ответ

1

Вот полный Примердлительногопребывания Bootstrap modal и передает переменные от родителя к модальному контроллеру. Plunker Here

index.html

<!DOCTYPE html> 
<html> 

    <head> 
    <link data-require="[email protected]" data-semver="3.3.6" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css" /> 
    <script data-require="[email protected]" data-semver="1.5.0" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0/angular.js"></script> 
    <script data-require="[email protected]" data-semver="1.1.2" src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/1.1.2/ui-bootstrap-tpls.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="script.js"></script> 
    </head> 

    <body ng-app="my-app"> 
    <div ng-controller="myController as mc"> 
     <h1>Hello Plunker!</h1> 
     <br><br> 
     myObject = {{mc.myObject}} 
     <a ng-click="mc.openModal(mc.myObject)">Open Modal</a> 
    </div> 
    </body> 

</html> 

myModalContent.html

<h2>I am a modal</h2> 
{{modal.myObject}} 

script.js

var myApp = angular.module('my-app', ['ui.bootstrap']); 

myApp.controller('myController', function($uibModal) { 
    var self = this; 
    self.myObject = {id: 1, value: "Hello"}; 
    self.openModal = function (size) { 
    var modalInstance = $uibModal.open({ 
     templateUrl: 'myModalContent.html', 
     controller: 'ModalInstanceCtrl as modal', 
     size: size, 
     resolve: { 
     // Any properties here become injected as arguments on the modal controller. 
     items: function() { 
      return self.myObject; 
     } 
     } 
    }); 
    }; 
}); 

// items is injected from the resolve property of the parent controller instantiating the modal. 
myApp.controller('ModalInstanceCtrl', function(items) { 
    var self = this; 
    self.myObject = items; 
}); 
+0

Благодарю вас за ответ. Acualy я удалил имя контроллера, и я добавил в моей решимости решимости: { \t \t \t \t chosenProducts: функция() { \t \t \t \t возврата chosenProducts; \t \t \t \t} Но все еще нет значений на странице 2 – yeddez

+0

k .. Создайте плункер, и я могу помочь. –

+0

Вот он: https://plnkr.co/edit/EzVVe3Mzt4HTSPEcrH4k?p=preview – yeddez

2

Удалить controlleroption из ваших $modal.open вариантов, которые создают новый экземпляр контроллера для модального всплывающего окна & игнорируя scope : $scope вариант модального options при открытии всплывающего окна.

var modalInstance = $uibModal.open({ 
    animation : $scope.animationsEnabled, 
    templateUrl : 'partials/operation.html', 
    //controller : 'ProductsController', //<-- remove controller name 
    scope : $scope, 
    size : size 
}); 
0

Благодарим за помощь! Я мог бы решить проблему, мне не пришлось определять контроллер в моем модальном

Смежные вопросы