нг-повтор не работает, когда я его использую

0

мой код выглядит следующим образом:

<ons-template id="stockSearch.html">
<ons-page ng-controller="stockSymbolController">
    <ons-toolbar class="DCF">
        <div class="left">
            <ons-back-button style="color:white;"></ons-back-button>
        </div>          
        <div class="center" style="font-size:22px;" >Stock Search  : {{myDCFNavigator.getCurrentPage().options.symbol}}</div>
    </ons-toolbar>
    <div class="stockSearchList">
        <div ng-repeat="stockSearch in stocksSearchList">
            <div class="stockSearchOne">
                <div class="stockSearchOneComp">{{stockSearch.company}}</div>
                <div class="stockSearchOneInfo">Symbol: {{stockSearch.symbol}}| Exchange:{{stockSearch.exchange}} </div>                        
            </div> 
        </div>
    </div>
</ons-page>

и script.js следующим образом:

module.controller('stockSymbolController', function($scope, $http){
$scope.stocksSearchList = new Object();
var url = "https://www.xxxxx.com/api/public/search_company/"+myDCFNavigator.getCurrentPage().options.symbol;
$.ajax({
    type: 'get',
    url: url,
    success: function(data) {
        $scope.stocksSearchList = data;
        console.log($scope.stocksSearchList);
    },
});
});

но ng-repeat не работает. Когда я добавляю <div ng-repeat="stockSearch in stocksSearchList"> Даже в середине просто отображается "123", он не будет отображаться.

Кто-нибудь знает причину?

  • 1
    Что делает console.log($scope.stocksSearchList); показать тебе?
  • 2
    Почему вы используете $ .ajax вместо $ http?
Показать ещё 4 комментария
Теги:
onsen-ui

2 ответа

1
Лучший ответ

Во-первых, вы должны использовать угловой метод $http не метод jQuery $.ajax. Из документов:

Служба $ http - это базовая Угловая служба, которая облегчает связь с удаленными HTTP-серверами через объект XMLHttpRequest браузера или через JSONP.

Поэтому ваш код должен выглядеть следующим образом:

module.controller('stockSymbolController', function($scope, $http){
var url = "https://www.xxxxx.com/api/public/search_company/"+myDCFNavigator.getCurrentPage().options.symbol;
$http.get(url)
    .then(function(response) { // success is being deprecated in favour of .then
        $scope.stocksSearchList = response.stocksSearchList; // this should be an array that has nested objects that include properties and values for company, symbol and exchange (see note below)
        console.log($scope.stocksSearchList);
    }, function(error) {
        // do something with the error
    });
});

Я предполагаю, что response выглядит следующим образом с двумя элементами массива:

{
    stocksSearchList: [
        {
            company: 'some company',
            symbol: 'some symbol',
            exchange: 'some exchange'
        },
        {
            company: 'some other company',
            symbol: 'some other symbol',
            exchange: 'some other exchange'
        }
    ]
}
  • 0
    те же документы также указывают на то, что success считается устаревшим
  • 0
    ах да, и я включил then в ответ ранее спасибо
Показать ещё 7 комментариев
0

Вместо:

$scope.stocksSearchList = new Object();

Пытаться

$scope.stocksSearchList = [];

И убедитесь, что это возвращает список;

  • 0
    на самом деле не имеет значения в любом случае, так как он все равно переназначается в обратном вызове

Ещё вопросы

Сообщество Overcoder
Наверх
Меню