$ scope不会更新更新

时间:2015-04-26 10:44:04

标签: javascript angularjs strongloop

我正在尝试更新按钮点击的视图,但我做错了。 控制台显示我的数组就像我想要的那样,但我的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()但这也不起作用。

1 个答案:

答案 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);
});