将Javascript函数转换为AngularJS函数

时间:2016-02-21 00:00:29

标签: javascript jquery angularjs angularjs-scope

我写了一个简单的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";
}

谢谢!

2 个答案:

答案 0 :(得分:3)

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

首先,没有AngularJS这样的功能。它们与任何其他javascript函数相同。如果你想在AngularJS的范围内使用“javascript”函数,你可以执行以下操作:

function goToResults() {
   ...
}

$scope.goToResults = goToResults;

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

第三,根据我的理解,您希望根据某些事件显示或隐藏div。有一些内置功能可以完成这些功能(ng-show,ng-hide,ng-if)。

你似乎缺乏关于Javascript& amp;的基本知识。 AngularJS,我建议通过Angular自己的文档[{3}}

给出示例教程。

答案 1 :(得分:-2)

技术上可以使用

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

但是,这并不是一个非常有角度的角色。这样做的方式。一个更有棱角的'路线在this question的答案中描述。一般来说,指的是具体的元素并不是“角”。办法;它试图让一些javascript实用程序随时可供(处理过的)HTML使用,例如指令,它们本质上是用于HTML的新元素或属性。指令的实现没有直接耦合到它使用这些属性或元素修改的元素,这使得角度更加可重用,并且在我和其他许多人中也是如此。意见,一旦你习惯了就更容易阅读和写作。