在函数调用上调用整个控制器

时间:2017-08-09 14:21:29

标签: html angularjs angularjs-controller

我面临一个奇怪的问题。

有一个角度js控制器及其相应的html文件。

根据html页面中的按钮单击,调用一个隐藏某个div并显示另一个div的函数。

但是会发生什么,按钮点击功能被调用,但随着整个js被调用(就像第一次加载页面一样)。 我在页面加载时有一些http调用。由于此http调用,单击按钮需要花费大量时间来加载。 一些例如代码:

/ * JS Code * /

controller config
$http.get('/getAllDetails',[]).success(function(data){
            $scope.details = data;
        })
        .error(function(data,status){
            alert("Something went wrong. Please try again");
        })
$scope.buttonclickFunction = function(){
 $scope.showSomeDiv = false;
 $scope.hideSomeDiv = true;
}

/ html代码 /

<div ng-if = "showSomeDiv">
    <div ng-repeat = "detail in details">
     {{detail.name}}
    </div>
</div>

/ 显示下面的div,但只有在我从头开始的http调用中得到响应之后 /

<div ng-if = "hideSomeDiv">
    <p>This should be shown on button click</p>
</div>

我对角js相对较新。希望有人能帮助我理解这是应该如何工作还是我做了一些新手的错误?

1 个答案:

答案 0 :(得分:0)

好的,我已经解决了这个问题。

问题是,我在表单属性中定义了ng-controller。由于我的html中有2个表单,控制器初始化三次(在html页面中两次,在路由配置中加载一次)。

这就是为什么在按钮点击时表单被加载以及控制器也是如此。

希望这有助于某人。 :)