AngularJS:如何在视图上方打开模态作为对哈希更改的响应(ngView /$routeProvider)
AngularJS: how to open a modal above a view as a response to a hash change (ngView /$routeProvider)
我正在我即将成为很棒的(第一个)角度应用程序中使用$routeProvider作为我的路线。
但是,从骨干来看,我似乎无法弄清楚如何打开模态作为对哈希更改的响应。
即:
http://localhost:3000/#/items/1
将打开带有项目模型的 Boostrap 详细信息模式(模板 + 控制器)。
这可以通过$routeProvider方法实现吗:
.when('/items/1', {
templateUrl: 'views/ItemDetails.html',
controller: 'ItemDetailsCtrl'
})
...
帮助?
你可能对
AngularJS的工作原理有点困惑 - 这是完全正常的,特别是如果你习惯于使用jQuery进行DOM操作。
AngularJS没有开箱即用的任何功能来启动模态窗口,我可以看到您正在使用Bootstrap。
我建议再次查看AngularJS官方文档(http://docs.angularjs.org/),并查看主页上的第一个示例以了解它。另外,请务必访问 Egghead.io(http://egghead.io/) - 那里非常好的视频教程。
但是为了给你一些帮助,我在这里整理了一个示例,使用Bootstrap和AngularJS来启动你想要的模态窗口。
您可以在此处看到它的工作(http://plnkr.co/edit/fCaNjLwi4RlCw66yKRd7)
基本上,$routeprovider
将应用程序"指向"正确的视图和控制器,以用于特定路由。因此,要加载的任何内容(在本例中为模式窗口)都需要成为视图的一部分。
看看下面的代码:
<!doctype html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="UTF-8">
<title>ItemDetailsCtrl</title>
<link data-require="bootstrap@3.0.0" data-semver="3.0.0" rel="stylesheet" href="http://getbootstrap.com/2.3.2/assets/css/bootstrap.css" />
<script data-require="jquery@2.0.3" data-semver="2.0.3" src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script data-require="bootstrap@3.0.0" data-semver="3.0.0" src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<script>
'use strict';
var myApp = angular.module('myApp', []).config(function($routeProvider){
$routeProvider.when('/',
{
templateUrl: 'views/template.html',
controller: 'ItemDetailsCtrl'
});
});
myApp.controller('ItemDetailsCtrl', function(){
});
</script>
<script type="text/ng-template" id="views/template.html">
<!-- Button to trigger modal -->
<a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>
<!-- Modal -->
<div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Modal header</h3>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary">Save changes</button>
</div>
</div>
</script>
</head>
<body ng-controller="ItemDetailsCtrl">
<div ng-view></div>
</body>
</html>
希望对您有所帮助!
相关文章:
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- AngularJS:获取链接中没有哈希的查询字符串值
- 如何在Google chrome安全首选项文件中创建扩展安全哈希代码
- 如何在浏览器重新加载时保存位置哈希状态
- jQuery scrollTop-哈希错误
- 动态添加哈希标记;t工作
- 在Javascript中实现对哈希值的暴力攻击
- 如何在JavaScript/Node中计算SHA256哈希和Base64字符串编码
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- 可以在React Native中制作一个自哈希应用程序
- 重定向不带哈希的URL-Ember.JS
- 正在测试主干事件哈希
- JavaScript对象作为哈希?复杂性是否大于O(1)
- AngularJS:如何在视图上方打开模态作为对哈希更改的响应(ngView /$routeProvider)
- 如何以更优雅的方式重写哈希赋值
- Javascript哈希在AJAX登录调用,更安全
- Javascript:什么查找更快:数组.indexOf vs对象哈希值
- 如何从联系人的Live API的响应中将哈希转换为文本
- 我可以在哈希表中存储响应对象吗?