2014-10-22 3 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} } 
      ); 

}) 

Когда я выполните поиск по запросу, в моей области $ $ не запрашивается $ 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);