这是我第一次尝试使用AngularJS,我通过W3找到了一个例子。我希望用它为我将为客户工作的新Bootstrap项目创建路由。
问题是它似乎没有加载我正在使用的javascript。我对javascript和DOM并不熟悉,所以不确定为什么这不起作用。
为了展示我正在谈论的内容的一个例子,我删除了所有内容,并尝试使用图像和工具提示。索引页面上的图像可以正常工作,但加载测试页后,工具提示将停止工作。我试图通过开发人员工具跟踪是否存在错误,但没有显示任何内容。
INDEX :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="assets/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="assets/css/custom.css">
<link rel="stylesheet" type="text/css" href="assets/css/font-awesome.min.css">
<script src="assets/js/jquery-3.3.1.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-route.js"></script>
<script>
var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/", {
templateUrl : "main.php"
})
.when("/home", {
templateUrl : "main.php"
})
.when("/test", {
templateUrl : "test.php"
})
});
</script>
<script>
$(document).ready(function() {
$('[data-toggle="tooltip"]').tooltip();
});
</script>
</head>
<body ng-app="myApp">
<p><a href="#!home">Main</a> | <a href="#!test">Test</a></p>
<p><img src="http://placehold.it/200x200" class="img-responsive" data-toggle="tooltip" data-placement="top" data-html="true" title="<strong>Test</strong>"></p>
<div ng-view></div>
</body>
</html>
TEST :
<p><strong>Test</strong></p>
<p><img src="http://placehold.it/200x200" class="img-responsive" data-toggle="tooltip" data-placement="top" data-html="true" title="<strong>Test</strong>"></p>
在ng-view DIV之前显示索引的工具提示。
工具提示未在测试ng-view上显示。
更新
遇到另一个问题,当我试图重新访问/ home调用main.php时,它只会加载一个带有最新帖子的空白屏幕,而不是其他任何内容。
主页
关于
返回首页
也没有出现任何错误。
答案 0 :(得分:1)
('[data-toggle="tooltip"]').tooltip();
执行以下操作:搜索所有现有元素并将工具提示附加到它们。 从角度来看,这完全没用,导致元素一直被创建和删除。 (这就是为什么它不适用于ng-view中的工具提示,导致此代码在ng-view由angular处理并填充内容之前执行)
这就是为什么在角度上所有Jquery插件都应该通过指令使用。
但是对于角度初学者的真正建议是完全删除Jquery,所以你不能使用jquery而且你被迫以有角度的方式做事。 对于jquery中的各种各样的东西,有角度的替代品,即工具提示 - 提到的ui.bootstrap或角度材料。