gpt4 book ai didi

javascript - AngularJS:如何在 View 上方打开模式作为对哈希更改的响应 (ngView/$routeProvider)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:02:36 27 4
gpt4 key购买 nike

我在即将变得很棒的(第一个)angular 应用程序中为我的路线使用 $routeProvider。

但是,从主干来看,我似乎无法弄清楚如何打开模式作为对哈希更改的响应。

即:

http://localhost:3000/#/items/1

将打开带有项目模型的 Boostrap 详细信息模式(模板 + Controller )。

这可以用 $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 将您的应用程序“指向”正确的 View 和 Controller 以用于特定路线。因此,无论您要加载什么(在本例中为模态窗口)都需要成为 View 的一部分。

看看下面的代码:

<!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>

希望对您有所帮助!

关于javascript - AngularJS:如何在 View 上方打开模式作为对哈希更改的响应 (ngView/$routeProvider),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18676196/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com