将 Javascript 函数转换为 AngularJS 函数

Convert Javascript function to AngularJS function

本文关键字:函数 AngularJS 转换 Javascript      更新时间:2023-09-26

我写了一个简单的javascript函数,可以在两个div元素之间切换。这样:

function goToResults() {
    document.getElementById("services").style.display = "none";
    document.getElementById("results").style.display = "block";
}

当我学习Angular时,我想在app.js中将其转换为Angular函数。我可以执行以下操作吗?

$scope.goToResults = function () {
    $scope.getElementById("services").style.display = "none";
    $scope.getElementById("results").style.display = "block";
}

谢谢!

您提供的代码段存在一些问题。

首先,没有AngularJS只有函数这样的东西。它们与任何其他JavaScript函数相同。如果你想在AngularJS的作用域中使用"javascript"函数,你可以执行以下操作:

function goToResults() {
   ...
}
$scope.goToResults = goToResults;

其次,在控制器内部处理 DOM 操作被认为是一种不好的做法。请改用指令。

第三,据我了解,您想根据某些事件显示或隐藏div。有一些内置功能可以做到这一点(ng-show,ng-hide,ng-if)。

你似乎缺乏一些关于Javascript和AngularJS的基础知识,我建议你通过Angular自己的文档 https://docs.angularjs.org/tutorial 给出的教程

技术上可以使用

$scope.goToResults = function () {
    document.getElementById("services").style.display = "none";
    document.getElementById("results").style.display = "block";
}

但是,这不是一种非常"有棱角"的方式。在对这个问题的回答中描述了一条更"棱角分明"的路线。一般来说,提及特定元素不是"棱角分明"的方式;相反,它试图拥有一组JavaScript实用程序,可供(处理的)HTML使用,例如指令,它们本质上是在HTML中使用的新元素或属性。指令的实现与使用这些属性或元素所修改的元素没有直接耦合,这使得 angular 更容易重用,并且在我和许多其他人看来,一旦你习惯了它,就更容易阅读和编写。