如何在 ng-view (angularjs) 中使用常规 javascript 作为代码

How to use regular javascript for code inside ng-view (angularjs)

第一次在这里使用angularJS。基本上,我使用了路由服务,所以我在模板中进行了路由调用,其中包含 html 代码。我还有所有这些常规 javascript 函数,这些函数是模板中的代码正确显示(幻灯片和许多其他内容)所必需的。

当我 运行 我得到所有这些空错误(似乎我的 JS 函数找不到各种元素,因为它要么无法访问 ng-view/template 中的代码,要么得到 运行在 ng-view/template 加载之前)。

当我将所有 javascript 函数粘贴到我为该模板分配的控制器中时,它起作用了。但我有一种感觉,我不应该那样做。使这项工作正确的方法是什么?谢谢

var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider){
    $routeProvider
    .when("/",{
        templateUrl:"about.html",
        controller:"aboutCtrl"
    })
    .when("/aboutus", {
        templateUrl:"entertainment.html"
    })
});

app.controller('aboutCtrl', function($scope){
    //placed regular javascript/jquery code here to make it work
});

您的 jQuery 功能可能不起作用,因为当您在不同的路线上时,无法找到要执行它们的元素。

解决方法:

  • 最简洁的方法:将幻灯片放映到 angular 指令中,在其中定义其 html 模板及其必要的代码。只有在调用模板时才会执行代码。 由于您刚刚开始使用 Angular,因此您可能需要更多帮助。
  • 将代码放入模板中:您也可以尝试将您需要的 JS 通过 < script > > 块进入模板。那样的 只有在加载模板时才会评估代码。
  • 正如您所说,您也可以将代码放入您的控制器中。但它会使你的控制器膨胀并使你的代码很快变得混乱

选项 2 和 3 可行,但也会很快使您的应用程序变得一团糟。我肯定会建议深入研究 angular 指令,以保持代码整洁。

也许 this tutorial 对您来说是一个很好的起点。