无法获取在离子后退按钮方法范围值(Not able to fetch scope value in

2019-10-23 04:42发布

在相同的模板离子无法得到离子导航栏指令值。

问题 -无论我填写文本量<input type="text" placeholder="70" ng-model="getamt">在下述代码,我能够在获得相同的值Getting Amt here: {{getamt}} ie.if我输入56,我能得到56类型的像Getting Amt here: 56我期待着打印相同,在Not updating Amt {{getamt}}但在这种情况下,我没有得到任何价值。

我需要将这个值发送到我以前的page..so我试图做到这一点的东西。

让我知道如何解决这个奇怪的问题与离子。

<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>

编辑-

我的控制器代码 -

.controller('mystate2Ctrl', function($scope, $stateParams, $localstorage, $rootScope, $ionicHistory) {
  console.log("----- mystate2Ctrl -----");

  $scope.myGoBack = function(val){
    console.log(val);
    $ionicHistory.goBack();
  };

  $rootScope.$on( "$ionicView.leave", function( scopes, states ) {
    if( states.stateName == "app.mystate1" ) {
      console.log("In Ionic View blah blah code here");
    } 
});

Answer 1:

你面临的问题与嵌套的范围,特别是与你用你的“模式”的方式做。

范围是不是模型。

我建议你到哪里他谈到您遇到的问题,观看MISKO Hevery这部影片。 在某一点 ,他说是这样的:

只要你有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>

如果你想看看它是如何运作的,你可以检查我的plunker 。

也许最好的方法是一个约翰爸爸建议他的角指引 。

如果你仔细阅读controllerAs视图语法 在这里他说,为什么你应该去这种方法:

为什么?:它促进使用绑定到视图中的“虚线”的对象(例如customer.name而不是名称),这是比较情境,更易于阅读,并避免可能发生的任何引用问题,而“点睛”。

为什么?:有助于避免与嵌套控制器视图中使用$父母的电话。

这是一个第二plunker与controllerAs样品。



Answer 2:

这似乎是因为,你Getting Amt here: {{getamt}}Not updating Amt {{getamt}}在两个不同的指令。 所以一定要确保他们都能够访问mystate2Ctrl

并试图定义控制器本身的变量。

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

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

HTH



文章来源: Not able to fetch scope value in back button method in Ionic