如何包含没有类型定义的第 3 方模块(角度拉动刷新)
Posted
技术标签:
【中文标题】如何包含没有类型定义的第 3 方模块(角度拉动刷新)【英文标题】:How to include 3rd party module (angular-pull-to-refresh), which has no type definitions 【发布时间】:2019-06-18 15:23:24 【问题描述】:我是一个完整的初学者,我不知道如何包含库和注入模块,所以请多多包涵。 这是我想要包含的模块:https://github.com/mgcrea/angular-pull-to-refresh
我用 bower 安装了模块并成功链接了它们。并且应该在 app.component.html 中对吗?或者我应该将它链接到名为列表 (list.component.html
) 的组件中,在该组件中显示我想用下拉刷新的数据?
您能否指出我正确的方向,这条线的放置位置以及“myApp”在这里代表什么。
- 将mgcrea.pullToRefresh
模块注入您的应用程序:angular.module('myApp', ['mgcrea.pullToRefresh']);
在示例中,pull-to-refresh
属性在函数 onReload() 中被调用。这个功能应该放在哪里?
感谢大家阅读和帮助我!
【问题讨论】:
你应该帮自己一个忙,参加一些涵盖从头开始构建 Angularjs 应用程序的课程,这样你就掌握了所有基础知识,知道如何在需要时搜索你需要的答案他们,阅读文档以获得有意义的见解,等等。这是一个很好的起点。 toddmotto.com/angularjs *** 是解决非常具体的问题的地方,您可以在其中详细展示您尝试过的内容,以便人们可以帮助解决非常具体的问题。 首先:为什么需要这个模块?我问是因为它似乎是一个旧模块(5 年以来的最后一次提交,它使用 bower。现在不推荐使用 Bower)。你正在开始一个新项目吗?如果是的话,你为什么要使用 angularjs(angularjs 在 4 年前是一个很棒的 js 框架)。我需要这些信息来回答问题 我不需要这个特定的模块,我可以使用任何下拉刷新模块。对于我的项目,我使用的是 Angular 7。 【参考方案1】:我设法使用此插件进行拉动刷新:https://github.com/BoxFactura/pulltorefresh.js
方法如下:
使用npm install pulltorefreshjs --save
npm install @types/pulltorefreshjs --save
然后在 app.components.ts 中导入import * as PullToRefresh from 'pulltorefreshjs';
并在 app.components.ts 中对其进行初始化:ptrinit:any = PullToRefresh.init();
【讨论】:
【参考方案2】:根据网站你可以这样做,在你的js文件中:
'use strict';
angular.module('myApp', ['mgcrea.pullToRefresh']);
angular.module('myApp')
.controller('AppCtrl', function($scope, $q)
$scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas'];
$scope.onReload = function()
console.warn('reload');
var deferred = $q.defer();
setTimeout(function()
deferred.resolve(true);
, 1000);
return deferred.promise;
;
);
在您的 index.html 文件中:
<body ontouchstart="" ng-controller="AppCtrl">
<div class="content">
<ul class="list-group list-group-table" pull-to-refresh="onReload()">
<li class="list-group-item" ng-repeat="state in states" ng-bind="state"></li>
</ul>
</div>
通过在页面的 body 标记 中添加 ng-controller 指令,您可以知道页面的哪个部分将由哪个控制器处理。在这种情况下,AppCtrl 控制器。您可以让多个控制器负责页面的不同部分,例如 div、body 或一个负责整个页面的控制器,例如 html 标签。
希望对您有所帮助!
【讨论】:
以上是关于如何包含没有类型定义的第 3 方模块(角度拉动刷新)的主要内容,如果未能解决你的问题,请参考以下文章