2014-10-22 2 views
2

에 겨 모델을 결합하지 않는 나는 내 검색 기능에 대한 다음과 같은 코드를 가지고AngularJS와는 범위

<ion-content class="has-header" id="content" push-search> 
    <div id="search-bar"> 
    <div class="item item-input-inset"> 
    <label class="item-input-wrapper" id="search-input"> 
     <i class="icon ion-search placeholder-icon"></i> 
     <input type="text" placeholder="Search" ng-model="query" ng-change="search()"> 
    </label> 
    </div> 
    </div> 
    <div> 
    <// code for displaying search results//> 
</ion-content> 

검색 컨트롤러

.controller('SearchCtrl', function($scope, SearchFactory) { 
    var doSearch = ionic.debounce(function(query) { 
    console.log($scope); 
    $scope.results = SearchFactory.get({'query':$scope.query}); 
    }, 500); 
    $scope.search = function() { 
    doSearch($scope.query); 
    } 
}) 

검색 공장 :

.factory('SearchFactory', function($resource) { 
    return $resource(url.concat('/paths/search/:query'), 
        {query: '@query' } , 
        { get: { method: 'GET' , isArray: true} } 
      ); 

}) 

I 검색을 수행하십시오. 내 $ scope에 $ scope.query가 없습니다. (참조) http://i.stack.imgur.com/MuxRt.png

+0

무엇 그것을 컨트롤러 상단의 빈 문자열로 초기화 할 때 발생합니까? – Blazemonger

+0

@Blazemonger 필드 $ scope.query가 표시되지만 검색 텍스트 필드에 변경 사항이 있더라도 비어 있습니다. 참조 : http://i.imgur.com/qz46PK3.png – Wheatley

+0

[plunker] (http://plnkr.co/edit/?p=preview)가 우리에게 더 도움이 될 것입니다. – Blazemonger

답변

0

짧은 대답은 "쿼리"가, 예를 들면 오히려 값보다는 참조에 의해 전달 될 수 있도록 범위 검색 개체의 필드를 할 필요가 있다는 것입니다 :

.controller('SearchCtrl', function($scope, SearchFactory) { 
    $scope.searchParams = {}; 
    $scope.searchParams.query = ''; 

    var doSearch = ionic.debounce(function(query) { 
    console.log($scope); 
    $scope.results =SearchFactory.get({'query':$scope.searchParams.query}); 
    }, 500);