2017-08-09 42 views
2

我有一个奇怪的问题,我面临。整个控制器被调用函数调用

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

基于html页面中的按钮点击,一个函数被调用,它隐藏某个div并显示另一个div。

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

/* JS代码*/

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。希望有人能帮助我理解这是应该如何工作,还是我在做一些新手错误?

回答

0

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

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

这就是为什么在按钮单击窗体正在加载,并与控制器一起。

希望这可以帮助别人。 :)