Javascript 无法在Ionic中的back button方法中获取范围值

Javascript 无法在Ionic中的back button方法中获取范围值,javascript,angularjs,ionic-framework,ionic,Javascript,Angularjs,Ionic Framework,Ionic,在同一模板上,ionic无法获取ion nav bar指令中的值 问题-无论我在下面提到的代码中在文本框中填写的金额是多少,我都能在此处获取金额时获得相同的值:{{getamt}即,如果我键入56,我就能够键入56,就像此处获取金额:56但是我希望在处打印相同的值,而不是更新金额{{getamt}但是在这种情况下,我没有得到任何值 我需要将此值发送到我的上一页..因此我正在尝试执行此操作 让我知道如何用ionic解决这个奇怪的问题 <ion-view> <ion-nav-b

在同一模板上,ionic无法获取ion nav bar指令中的值

问题-无论我在下面提到的代码中在文本框中填写的金额是多少,我都能在
此处获取金额时获得相同的值:{{getamt}
即,如果我键入56,我就能够键入56,就像
此处获取金额:56
但是我希望在
处打印相同的值,而不是更新金额{{getamt}
但是在这种情况下,我没有得到任何值

我需要将此值发送到我的上一页..因此我正在尝试执行此操作

让我知道如何用ionic解决这个奇怪的问题

<ion-view>
  <ion-nav-bar class="bar-stable">
    <ion-nav-back-button class="button-clear" ng-click="myGoBack(getamt)">
      <i class="icon ion-ios7-arrow-back"></i> Not updating Amt {{getamt}}
    </ion-nav-back-button>
  </ion-nav-bar>

  <ion-content class="has-subheader" padding-bottom="true">
    <div class="row">
      <div class="col col-30">
        <input type="text" placeholder="70" ng-model="getamt">
      </div>
      <div class="col col-30 item">
        Getting Amt here:  {{getamt}}
      </div>
    </div>
  </ion-content>
</ion-view>

这似乎是因为,您的
在这里获取Amt:{{getamt}
不更新Amt{{{getamt}}
使用两个不同的指令。因此,请确保它们都可以访问
mystate2Ctrl

并尝试在控制器本身中定义变量

.controller('mystate2Ctrl', function($scope, $stateParams, $localstorage, $rootScope, $ionicHistory) {

  $scope.getamt = 0;
  // your code 
})

HTH

您面临的问题与嵌套作用域有关,特别是与您使用“模型”的方式有关

范围不是模型

我建议你从Miško Hevery看这段视频,他在视频中谈到了你的问题

<ion-view view-title="my-app">

  <ion-nav-buttons side="right" class="button-clear" ng-click="myGoBack(mymodel.getamt)">
    <i class="icon ion-ios7-arrow-back"></i> Not updating Amt {{mymodel.getamt}}
  </ion-nav-buttons>

  <ion-content class="has-subheader" padding-bottom="true">
    <div class="row">
      <div class="col col-30">
        <input type="text" placeholder="70" ng-model="mymodel.getamt">
      </div>
      <div class="col col-30 item">
        Getting Amt here:  {{mymodel.getamt}}
      </div>
    </div>
  </ion-content>
</ion-view>
当你有ng模型的时候,一定会有一个点。 如果你没有一个圆点,你就做错了

无论如何,如果你想解决你的问题,你应该在你的控制器中定义一个模型

解决方案是创建一个:

.controller('mystate2Ctrl', function($rootScope, $scope, $state) {

  $scope.mymodel = { getamt: 0 };

});
现在,您可以使用点在视图中引用模型,视图应如下所示:

<ion-view view-title="my-app">

  <ion-nav-buttons side="right" class="button-clear" ng-click="myGoBack(mymodel.getamt)">
    <i class="icon ion-ios7-arrow-back"></i> Not updating Amt {{mymodel.getamt}}
  </ion-nav-buttons>

  <ion-content class="has-subheader" padding-bottom="true">
    <div class="row">
      <div class="col col-30">
        <input type="text" placeholder="70" ng-model="mymodel.getamt">
      </div>
      <div class="col col-30 item">
        Getting Amt here:  {{mymodel.getamt}}
      </div>
    </div>
  </ion-content>
</ion-view>

不更新Amt{{mymodel.getamt}
正在此处获取Amt:{{mymodel.getamt}
如果你想看看它是如何工作的,你可以查看我的

也许最好的方法就是约翰·帕帕在他的文章中建议的方法

如果您仔细阅读controllerAs视图语法,他会说明为什么您应该采用这种方法:

为什么?:它促进了绑定到视图中“点”对象的使用 (例如,customer.name而不是name),这更符合上下文,更容易 阅读,并避免在没有 “打点”

为什么?:帮助避免在嵌套的视图中使用$parent调用 控制器


这是示例中的第二个plunker。

这很可能是爱奥尼亚指令中隔离作用域的问题。您可以包含控制器代码吗?@tyler当然。但是控制器中没有太多代码。请查找我的edit@tyler请找到我的编辑…,如果您需要更多详细信息,请告诉我将
$scope.getamt=0
添加到t他在你的控制器上。那能解决什么问题吗?