双向数据绑定在<ion-content>

时间:2015-09-30 06:52:26

标签: angularjs data-binding ionic-framework ionic

双向数据绑定不是在<ion-content>中进行的。我无法获得$ scope变量的更新值(&#34; searchKeyword&#34;在这种情况下)。如果我将html放在<ion-conent>之外,那么它就可以了。我对此行为非常困惑。下面的代码可以使用,

<ion-view view-title="Search" >
  <div class="bar bar-header item-input-inset" style="height:52px;">
    <label class="item-input-wrapper">
      <i class="icon ion-ios-search placeholder-icon"></i>
      <input type="search" placeholder="Search" ng-model="searchKeyword" ng-keyup="$event.keyCode == 13 ? search() : null">
    </label>
    <button class="button button-clear" ng-click="search()">
      search
    </button>
  </div>
  <ion-content scroll="true" style="margin-top:50px;" >

  </ion-content>
</ion-view>

但下面没有:(

 <ion-view view-title="Search" >

      <ion-content scroll="true" style="margin-top:50px;" >
    <div class="bar bar-header item-input-inset" style="height:52px;">
        <label class="item-input-wrapper">
          <i class="icon ion-ios-search placeholder-icon"></i>
          <input type="search" placeholder="Search" ng-model="searchKeyword" ng-keyup="$event.keyCode == 13 ? search() : null">
        </label>
        <button class="button button-clear" ng-click="search()">
          search
        </button>
      </div>
      </ion-content>
    </ion-view>

这里,在search()函数中,我没有获得&#34; searchKeyword&#34;的更新值。下面是我的控制器,

angular.module('myapp')
.controller('SearchController',function($scope){
$scope.searchKeyword='';
  $scope.search=function(){
    console.log('search keyword : '+$scope.searchKeyword);
  };
})

1 个答案:

答案 0 :(得分:2)

$scope.searchKeyword中的

search()ng-model在输入值发生更改后引用不同的范围,因为<ion-content>创建了新的范围。不幸的是,对于原始值,这需要解决。有关更深入的解释,请参阅this SO answer