如何用AngularJS创建富交互的web应用
How to create interaction-rich web app with AngularJS?
自从我接触AngularJS以来,这个问题一直困扰着我。
是的,AngularJS在表示和破坏逻辑之间提供了一个彻底的分离。然而,我发现自己处于这样的两难境地,有时我真的无法抗拒直接从我的服务中操纵一些DOM元素的诱惑,这显然不是最佳实践,因为AngularJS建议在指令中进行操作,我发现这相当累人,特别是在我想创建具有沉浸式体验的应用程序的情况下。
最近我在做一个使用node-webkit的原生应用项目。我们想利用AngularJS的优势,用HTML5和Node.js构建一个多文档应用。但我想不出实现这一目标的方法。在我看来,即使是嵌套视图也不容易创建,也不推荐使用AngularJS,更不用说多窗口了。
与此同时,我发现Backbone在这方面相当令人满意。然而,由于其他原因,我仍然更喜欢AngularJS。
你觉得怎么样?这个问题有什么解决办法吗?有开源项目吗?代码示例也非常受欢迎。
处理onscroll的简单指令可以像这样:
app.directive('myScrollWindow',function($window){
return function(scope,element,attrs) {
angular.element($window).bind('scroll',function(){
// do your stuff here
// for example:
if(this.pageYOffset >= 50) {
// do something
}
});
scope.$apply();
}
});
scope.$apply()是这里工作的关键。
重点是你可以在指令中做几乎任何事情。
你可以添加一个按钮,并像这样显示模式:(我假设你正在使用Twitter Bootstrap的模式)
app.directive('blah',function(){
function link(scope,elem,attrs){
var modal = elem.find('.modal');
scope.openDialog = function(){
modal.show();
}
}
return {
restrict:'E,A',
link: link,
template:"<button type='"button'" ng-click='"openDialog()'">Click me</button><div class='"modal hide fade'">...</div>"
}
});
element.find()只会在指令的模板中查找。它不会对模态css类进行完整的DOM搜索。这就是指令
你一定要仔细看看ionic。它们仍处于测试阶段,但在从UI到性能的各个方面都有了巨大的改进。
ionic库非常直接,angular在f/e逻辑方面非常出色,而cordova迄今为止在API方面证明了自己是生产级材料。对于跨平台解决方案来说,拥有(几乎)单一的代码基础比任何其他考虑因素都重要。
离子框架docs
API科尔多瓦如果你不反对引入另一个框架,我将推荐Twitter Bootstrap 3和UI Bootstrap。UI引导是一组由Angular团队编写的指令。我发现它在执行我们需要的所有UI操作方面非常全面。当然,如果您需要更多的功能,您总是可以扩展这些指令。
甚至还有一个用于模态对话框的指令。看一下
- 在Web应用程序中使用Highcharts javascript
- 在web应用程序中的新搜索中重新加载搜索结果(不带jQuery)
- Web应用程序,将成员状态更新为其他成员
- 同一文本框中的验证程序CPF e CNPJ(ASP.NET web应用程序)
- 使用Ember的Web应用程序架构.动画逻辑应该放在哪里
- 如何使用默认的网络摄像头拍摄照片并将其保存在我的c#.net web应用程序中
- c#web应用程序中的条形码打印
- 使用javascript为web应用程序自定义键盘快捷键
- 使用angularjs和node.js时的Web应用程序文件夹结构
- PhpWindows 8.1版本上的Javascript web应用程序
- 是否有任何开源web应用程序具有良好的QUnit(或JSUnit)测试用例
- Project和作为web应用程序发布的多个doGet()脚本文件——需要澄清
- 如何获取使用我们的脚本或web应用程序的网站名称
- 没有框架/DLL的VS Web应用程序项目
- 正确传输和保护用户'web应用程序的密码
- 检查Progressive web应用程序中的网络更改
- 一个Web应用程序上有两个Java脚本
- JavaScript onScroll在谷歌应用程序脚本web应用程序中不起作用
- 家谱web应用程序的“家谱”视图
- 如何更改web应用程序的语言.有没有这样的api