带外部控制器的angularjs ng-view

时间:2016-06-15 08:34:08

标签: angularjs ngroute

链接小提琴包含一个简单的应用程序,我希望我的变量isLoggedIn保持更新。 问题是该函数在一次运行中被调用3次。

https://jsfiddle.net/michael_loukeris/xprmoq65/

   $scope.isLoggedIn = function(){
    console.log('errr');
  //calling a service

return false;
};

在我的情况下实现双向数据绑定的最佳方法是什么,以便我的导航栏基于用户身份验证保持更新。

2 个答案:

答案 0 :(得分:0)

您应该ng-show使用$scope.variable而不是$scope.function 因为在初始化期间,angular会多次触碰ng-show

改为使用ng-init

在你的情况下

  <ul ng-init='checkUser()'>
    <li><a href="#/this" ng-show="isLoggedIn">This</a></li>
    <li><a href="#/that">That</a></li>
    <li><a href="#/other">Other</a></li>
  </ul>

app.controller( 'MainCtrl', function ( $scope ) {
$scope.checkUser = function(){
    $scope.isLoggedIn = false;
    console.log('errr');
};

答案 1 :(得分:0)

删除ng-controller="MainCtrl"并且在运行中不会调用它三次。 使用设置为true / false而不是函数的变量。