AngularJS - 一个简单的无限滚动

2023-12-02

我正在尝试编写一个与此处找到的类似的小型无限滚动:http://jsfiddle.net/vojtajina/U7Bz9/

我已经能够显示前 5 条数据,但是在滚动时,其他项目不会显示。

HTML:

<div id="fixed" directive-when-scrolled="loadMore()">
  <ul>
    <li ng-repeat="i in items | limitTo: 5">{{ i.Title }}</li>
  </ul>  
</div>

JS:

var app = angular.module('app', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';

  $scope.items = [
    {
       "Title":"Home"
    },
    {
       "Title":"Contact"
    },
    {
       "Title":"Help"
    },
    {
       "Title":"About"
    },
    {
       "Title":"Our Offices"
    },
    {
       "Title":"Our Locations"
    },
    {
       "Title":"Meet the Team"
    }
    ,
    {
       "Title":"Our Mission"
    },
    {
       "Title":"Join Us"
    },
    {
       "Title":"Conferences"
    },
    {
       "Title":"Tables"
    },
    {
       "Title":"Chairs"
    } 
  ];

    var counter = 0;
    $scope.loadMore = function() {
        for (var i = 0; i < 5; i++) {
            $scope.items.push({id: counter});
            counter += 10;
        }
    };

    $scope.loadMore();


});


app.directive("directiveWhenScrolled", function () {
  return function(scope, elm, attr) {
        var raw = elm[0];

        elm.bind('app', function() {
            if (raw.scrollTop + raw.offsetHeight >= raw.scrollHeight) {
                scope.$apply(attr.whenScrolled);
            }
        });
    };
});

这是一个笨蛋:http://plnkr.co/edit/6ggYGZx6scSoJ5PNhj67?p=preview


有两个问题。首先,什么是attr.whenScrolled?其未定义。第二个 -limitTo: 5。您将始终只显示 5 个元素!

这里有工作代码:http://plnkr.co/edit/VszvMnWCGb662azo4wAv?p=preview

改变了什么?您的指令称为directiveWhenScrolled所以打电话:

scope.$apply(attr.directiveWhenScrolled);

代替

scope.$apply(attr.whenScrolled);

让我们如何处理静态限制。将其更改为变量(记住定义默认值):

<li ng-repeat="i in items | limitTo: limit">{{ i.Title }}</li>

现在你的loadMore函数应该是这样的:

$scope.loadMore = function() {
    $scope.limit += 5;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS - 一个简单的无限滚动 的相关文章

随机推荐

  • 使用 jQuery 的 .focus() 在 Mac 上的 Firefox 中设置焦点

    我想得到 focus 在 Mac 上使用 Firefox 版本 33 1 1 一些类似的问题提到了具有以下效果的解决方案 focus 没有视觉效果 通过下面的每项测试 我什至无法完成这一任务 下面列出的各种测试都适用于 Chrome 但不适
  • 如何开始使用 directshow?

    我很难理解this 编译 运行 directshow 应用程序的最少设置是什么 我已经安装了 Visual C 2008 Express 你好世界会很好 RGS 设置您的环境 设置环境是一个繁琐的过程 因为 DirectShow 现在已经深
  • 如何判断api是否返回数据?

    如何检查我的 api 请求是否返回任何数据fetchData功能 我想返回boolean 或其他东西 给我的Index vue并在加载数据时显示加载程序 但是当加载数据时我想使用 this router push admin dashboa
  • 如何在窗口中安排 Oracle DBMS 作业

    我想创建一个 Oracle DBMS 作业 该作业在每个工作日 不是周末 的 09 00 到 20 00 每 10 分钟运行一次 我想知道我是否可以做到这一点FREQ作业定义的参数 否则我必须创建一个New Maintenance Wind
  • java中用数组常量定义的枚举

    我想知道是否可以用数组定义枚举作为常量 请参阅以下代码摘录 编译时不会出现非法表达式开始错误 有人可以帮助我吗 非常感谢 public enum Currency PENNY 1 one oneone NICKLE 5 five DIME
  • VSTS 安装后将代理状态从离线更改为在线

    我遇到 VSTS 代理状态离线的问题 我通过 cmd 在正确的池下安装了代理并在之后下载 但它仍然离线 请提供任何帮助吗 如果构建代理以交互模式运行 您需要通过运行来启动代理run cmd file 以管理员身份打开命令行 Run run
  • Visual Studio 减慢应用程序速度

    这是一个模糊的问题 但是对于 Visual Studio 减慢应用程序速度我能做些什么吗 如果我在 Visual Studio 之外运行可执行文件 它会以非常可接受的速度运行 如果我在启用调试器的情况下在 Visual Studio 中运行
  • .sheet:仅显示一次,然后不再显示

    使用Beta4 似乎该错误仍然存 在 以下视图序列 列表 其中点击列表条目可打开另一个列表 允许呈现ListView正好一次 这onDisappear从未被调用过 所以showModal标志发生变化 但不会触发重新显示ListView再次点
  • 如何从 Information_Schema.Columns 获取列的主键或键约束详细信息?

    如何从 Information Schema Columns 获取列的主键或键约束详细信息 我从 sys indexes 获取输出 但是在使用 Information Schema 加入查询时 我得到重复的记录 SELECT COLUMN
  • Git 推送仅适用于裸存储库?

    当我尝试 git push origin master 到外部磁盘上的远程存储库时 出现 git 警告 指出在下一个版本的 git 中 pusing 签出存储库将默认被拒绝 在外部磁盘上 我已签出项目 并且我想将我在计算机上所做的更改发送到
  • 在 PowerShell 2.0 中将编码设置为 ANSI

    我想使用参数将文件的编码设置为 ANSI Encoding of the Set Contentcmdlet 我尝试了这个 但它不起作用 Set Content LiteralPath filePath Encoding Default P
  • 当被测试者在 Perl 中使用 TAP 失败退出时,是否可以测试预期的错误?

    假设您正在运行一些单元测试 并且您想查看正在测试的方法 或脚本或函数或其他内容 是否失败 如何设置这样的测试 我希望有这样的事情 ok obj gt method my bad params DEATH method dies as exp
  • _=> 这个下划线在 Lambda 表达式中是什么意思?

    lambda 表达式是什么样的 gt expr mean 目的是什么 作为 lambda 的输入 Example int count 0 list ForEach gt count 1 这是当您不关心参数时使用的约定
  • 如何在 Android 中启用 GPS

    如何在 Android 中打开 GPS 关闭时检索当前位置 我测试了两种方法 private void turnGPSOn String provider Settings Secure getString getContentResolv
  • 重新排列方程

    我的 C 代码中有以下等式 k dl 1 0 pHold centre pHold pHold 2 0 centre centre square 2 0 centre 我知道浮点除法比乘法昂贵得多 我已经为此苦苦挣扎了一段时间 有没有什么办
  • 等待函数完成执行并使用结​​果

    这是场景 我有一个活动 A 它有一个按钮和文本视图 我有另一个类 B 其中包含执行各种功能的方法 创建类 B 的实例后 当单击按钮时 会从 A 调用它的公共方法之一 该方法需要一段时间来执行 它调用类中另一个耗时的私有方法 并返回类 B 的
  • 如何通过单击 JSP 页面中的超链接或按钮将当前项目传递给 Java 方法?

    我有一个 HTML 表 其中显示从数据库中获取的行 我希望用户能够通过单击每行旁边的删除超链接或按钮来删除行 当用户单击每个删除超链接或按钮时 如何在页面上调用 JSP 函数 以便我可以从数据库中删除该行的条目 到底应该做什么 a or a
  • 另一个 Java 泛型“不兼容类型”编译错误

    我正在编写一些代码并遇到了一个incompatible types编译错误 这就是我所拥有的 public interface Expression
  • 对于 Windows Server 2008,WebRequest 无法通过 TLS 1.1 / 1.2

    我正在运行一个 net 4 5 应用程序 该应用程序向仅支持 TLS 1 1 和 TLS 1 2 的外部服务器发出安全出站请求 当我从 Windows 8 8 1 主机运行该应用程序时一切正常 但在 Windows Server 2008
  • AngularJS - 一个简单的无限滚动

    我正在尝试编写一个与此处找到的类似的小型无限滚动 http jsfiddle net vojtajina U7Bz9 我已经能够显示前 5 条数据 但是在滚动时 其他项目不会显示 HTML div ul li i Title li ul d