我在我即将成为令人敬畏的(第一个)角度应用程序中使用$ routeProvider作为我的路线。
然而,从骨干来看,我似乎无法弄清楚如何打开模态作为对哈希变化的响应。
IE:
http://localhost:3000/#/items/1
将使用项目的模型打开Boostrap详细信息模式(模板+控制器)。
可以使用$ routeProvider方法完成:
.when('/items/1', {
templateUrl: 'views/ItemDetails.html',
controller: 'ItemDetailsCtrl'
})
...
帮助?
答案 0 :(得分:3)
你可能对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>
希望有所帮助!