2016-05-26 11 views
0

イオンポップアップで計算結果を表示しようとしていますが、何とか$ scope変数がポップアップ内で '未定義'であるとわかりませんでした。なぜなら

のポップアップテンプレートが表示さはNaN上記で

.controller('HealthCtrl', function($scope, $state, $ionicPopup){ 
    $scope.health = { 
    weight: '', 
    height: '' 
    }; 
    $scope.calculate = function(){ 
     console.log('calculate button got click event'); 
     console.log($scope.health.weight); 
     var myPopup = $ionicPopup.show({ 
      template: '<b> {{0.5 * $scope.health.weight + 16}} </b>', 
      title: 'Result', 
      scope: $scope, 
      buttons: [ 
      { 
       text: '<b>Done</b>', 
       type: 'button-positive', 
       onTap: function() { 
       $state.go('app.record'); 
       } 
      } 
      ] 
     }).then(function(res){ 
      console.log(res); 
      console.log($scope.health.weight); 
     }); 
    } 
}) 

$ scope.health.weight

は '未定義' されます。計算機能のconsole.log($scope.health.weight);が正しい値を表示するところ。提案してください。

+5

'template.'文字列に' $ scope.health.weight'を 'health.weight'に置き換えてください – Rovak

+0

@ Rovakこれは多くのおかげでこの問題を解決しました。しかし、私は 'this.health.weight'もうまくいきます。それについてのあらゆる考え。 – Vishwa

+0

$ scope変数の値を渡すために使用されます。変数ではありません。答えのために – Atula

答えて

0

scopeは、$scope.calculateの中にあります。だから、私はあなたがそれを範囲に戻すことはできないと思う。解釈できないコードになります。私はあなたの問題を解決する必要があります...

+0

Ty。私はこの部分を理解していませんでした。「スコープ:<ここに行くのは何ですか?>」 'scope:$ scope'と' health.weight'や 'this.health.weight'のテンプレートはうまく動作します。しかし、もし私が 'スコープ'を削除すると、何も動作しません。スコープ:<ここに行くのは何ですか?> – Vishwa

関連する問題