我正在尝试更新按钮点击的视图,但我做错了。 控制台显示我的数组就像我想要的那样,但我的ng-repeat列表没有更新。
HTML:
<body ng-app="MyApp">
<div layout="row" ng-controller="LekoviController">
<md-content md-scroll-y flex class="lista_lekova_layout">
<md-list>
<md-list-item ng-repeat="lek in lekovi | filter:search">
<p ng-click="prikaz(lek)">{{lek.naziv}}</p>
</md-list-item>
</md-list>
<button ng-click="loadMore()">Ucitaj jos</button>
</md-content>
</div>
</body>
JS:
var app = angular.module('MyApp', [
'lbServices',
'ui.router',
'ngResource',
'ngMaterial',
'ngMdIcons',
'ngRoute'
]);
app.controller('LekoviController', ['$scope', '$mdSidenav', 'Lekovi', 'ObliciLeka', function($scope, $mdSidenav, Lekovi, ObliciLeka) {
$scope.ucitano = false;
$scope.trenutniId = 0;
var lek = [];
$scope.lekovi = Lekovi.find({
filter: {
where: { lekId: {between: [1, 100]} }
}
}, function(){
$scope.ucitano = true;
});
$scope.loadMore = function() {
$scope.trenutniId = $scope.lekovi.length + 100;
lek = Lekovi.find({
filter: {
where: { lekId: {between: [$scope.lekovi.length, $scope.trenutniId]} }
}
}, function(){
for(i = 0; i<lek.length; i++){
$scope.lekovi.push(lek[i]);
}
console.log($scope.lekovi);
});
};
我正在尝试使用$ scope。$ apply()但这也不起作用。
答案 0 :(得分:0)
顺便说一句。你在哪里声明变量'lek'?不应该用它作为成功回调函数的参数吗?
$scope.loadMore = function() {
$scope.trenutniId = $scope.lekovi.length + 100;
Lekovi.find({
filter: {
where: { lekId: {between: [$scope.lekovi.length, $scope.trenutniId]} }
}
}, function(lek){ // declare 'lek' as function parameter
for(i = 0; i<lek.length; i++){
$scope.lekovi.push(lek[i]);
}
console.log($scope.lekovi);
});