2016-03-23 162 views
0

我有一个employeeController。该employeeController有几个功能。AngularJs控制器

例如:

login 
getEmployee 

这是(例如)我的代码:

function employeeController() 
    { 
     var vm = this; 
      vm.login = function() { 
       //login logic 
      } 
      vm.getUser = function(id) { 
       //receive one user 
      } 
     vm.getUser(); 
    } 

当员工访问他/她的页面中的员工数据必须立即加载。但是当我登录时,我不想调用vm.getUser()方法。我怎么能得到这个权利!?

+0

您正在关注旧的方式和旧的参考角度版本可能..请参阅[这个答案](http://stackoverflow.com/a/28728380/2435473)将帮助你。 –

+0

检查路线。如果登录后的路由回家,请在调用 – Ved

+0

时应用此条件当调用控制器时,您正在调用函数'getUser',除非您指定其他内容,否则您无法停止 – Satpal

回答

1

你忘了在控制器中放置$ scope。

function employeeController($scope) 
 
    { 
 
      var vm = this; 
 
      vm.login = function() { 
 
       alert("Test"); 
 
      } 
 
      vm.getUser = function(id) { 
 
       //receive one user 
 
      } 
 
     vm.getUser(); 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="" ng-controller="employeeController as ctrl" > 
 
    <input type="button" value="Test" ng-click = "ctrl.login()"> 
 
</div>

+0

对不起忘了var vm = this;但那不会解决我的问题。 – Jamie

+0

你忘了给控制器添加$ scope –

-1

更好地利用回调函数来实现。

function Ctrl($scope, $http, $q) { 

    $http({ 
    method: 'JSONP', 
    url: url 
    }).success(function(data) { 

// do get user function 
     } 

    }); 


}