Двусторонняя привязка данных не ворует в <ion-content>
. Я не могу получить обновленное значение переменной $ scope ("searchKeyword" в этом случае). Если я поместил 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() я не получает обновленное значение "searchKeyword". Ниже мой контроллер,
angular.module('myapp')
.controller('SearchController',function($scope){
$scope.searchKeyword='';
$scope.search=function(){
console.log('search keyword : '+$scope.searchKeyword);
};
})
$scope.searchKeyword
в search()
и ng-model
относятся к разным областям после изменения значения ввода, потому что <ion-content>
создает новую область. К сожалению, для примитивных значений это нужно проработать. Пожалуйста, см. Этот ответ SO для более глубокого объяснения.