AngularJS - 工具提示不起作用

问题描述 投票:0回答:1

这是我第一次尝试AngularJS,我通过W3找到了一个例子。我希望用它来为我将为客户工作的新Bootstrap项目创建路由。

问题是它似乎没有加载我正在使用的JavaScript。我不熟悉javascript和DOM,所以不确定为什么这不起作用。

为了展示我正在谈论的内容的一个例子,我删除了所有内容,并尝试使用图像和工具提示。索引页面上的图像可以正常工作,但加载测试页后,工具提示将停止工作。我试图通过开发人员工具跟踪是否存在错误,但没有显示任何内容。

指数:

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

测试:

<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之前显示索引的工具提示。

Tooltip showing before the ng-view DIV

工具提示未在测试ng-view上显示。

Tooltip not showing in the test ng-view DIV

UPDATE

遇到另一个问题,当我试图重新访问/ home调用main.php时,它只会加载一个带有最新帖子的空白屏幕,而不是其他任何内容。

主页

Homepage loads fine.

关于

About page loads fine.

回家

Nothing reloads.

也没有出现任何错误。

javascript html angularjs
1个回答
1
投票
('[data-toggle="tooltip"]').tooltip();

执行以下操作:搜索所有现有元素并将工具提示附加到它们。从角度来看,这完全没用,导致元素一直被创建和删除。 (这就是为什么它不适用于ng-view中的工具提示,导致此代码在ng-view由angular处理并填充内容之前执行)

这就是为什么在角度中所有Jquery插件都应该通过指令使用。

但是对于角度初学者的真正建议是完全删除Jquery,所以你不能使用jquery而且你被迫以有角度的方式做事。对于jquery中的各种各样的东西,有角度的替代品,即工具提示 - 提到的ui.bootstrap或角度材料。

© www.soinside.com 2019 - 2024. All rights reserved.