мой код выглядит следующим образом:
<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", он не будет отображаться.
Кто-нибудь знает причину?
Во-первых, вы должны использовать угловой метод $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'
}
]
}
success
считается устаревшим
then
в ответ ранее спасибо
Вместо:
$scope.stocksSearchList = new Object();
Пытаться
$scope.stocksSearchList = [];
И убедитесь, что это возвращает список;
console.log($scope.stocksSearchList);
показать тебе?