链接小提琴包含一个简单的应用程序,我希望我的变量isLoggedIn保持更新。 问题是该函数在一次运行中被调用3次。
https://jsfiddle.net/michael_loukeris/xprmoq65/
$scope.isLoggedIn = function(){
console.log('errr');
//calling a service
return false;
};
在我的情况下实现双向数据绑定的最佳方法是什么,以便我的导航栏基于用户身份验证保持更新。
答案 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而不是函数的变量。