2016-05-18 4 views
1

Я думаю, что это не сложный вопрос, но что-то пошло не так. Я новичок в работе с пользовательским интерфейсом onsen, и я хочу создать диалоговое окно, в котором мне нужны некоторые параметры. Я не знаю, почему он не работает. Вот мой HTML:Невозможно получить параметры области в ons-диалоге. Зачем?

<ons-template id="tippDialog"> 
<ons-dialog var="tippdialog" id="tippdialog" ng-controller="controllerName" cancelable> 
    <div class="center"> 
     <h3>Tipp abspeichern</h3> 
     <form action="saveTip.php"> 
      <ons-input id="tippa" type="number" placeholder="TipA" value=""></ons-input> 
      <ons-input id="tippb" type="number" placeholder="TipB" value=""></ons-input> 
      <p>{{tip_matchid}}{{userid}}</p> 
     </form> 
     <ons-button id="tippspeichern">Speichern</ons-button> 
    </div> 
</ons-dialog> 

и это то, что я делаю в контроллере:

$scope.dialogs = {}; 

      $scope.tipDialog = function(match_id){ 
       tip_matchid = match_id; 
       $scope.tip_matchid = tip_matchid; 
       $scope.userid = userid; 
       ons.createDialog("../dialogs/tippDialog.html", $scope).then(function(tippdialog){ 
        $scope.dialogs[tippdialog] = tippdialog; 
        tippdialog.show(); 
       }); 
      } 

Найдено некоторые из этого кода здесь в StackOverflow, но я ничего не нашел не было полезным. Надеюсь, кто-нибудь может мне помочь. БЛАГОДАРЯ!

ответ

0

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

Я не проверял, но я думаю, что это то, что вы «ищете:

$scope.dialogs = {}; 

$scope.tipDialog = function(match_id){ 
    $scope.tip_matchid = tip_matchid = match_id; 
    $scope.userid = userid; 
    ons.createDialog("../dialogs/tippDialog.html", {parentScope: $scope}).then(function(tippdialog){ 
     $scope.dialogs[tippdialog] = tippdialog; 
     tippdialog.show(); 
    }); 
} 

важной частью является {parentScope: $scope}.

С текущей реализацией это свойство, которое проверяет Онсен.
Это ons.$compile(angular.element(element))(options.parentScope.$new()).

Таким образом, в основном ваше диалоговое окно имеет пространство для братьев и сестер, которое вы предоставили. И используя {parentScope: $scope}, он становится дочерней областью, и я думаю, это то, что вы хотите иметь.

+0

большое спасибо :-) thats it ... – KaFu

1

Получил решение. Думаете, что это не самый лучший способ, но вы можете сделать это следующим образом:

$scope.dialogs = {}; 

      $scope.tipDialog = function(match_id, tipa, tipb){ 
       tip_matchid = match_id; 
       ons.createDialog("../dialogs/tippDialog.html", $scope).then(function(tippdialog){ 
        tippdialog._scope.tip_matchid = tip_matchid; 
        tippdialog._scope.userid = userid; 
        $scope.dialogs[tippdialog] = tippdialog; 
        tippdialog.show(); 
       }); 
      }