Is there any difference using
ng-if with a value or with a function ?
ng-if="myvalue"
ng-if="myfunc()"
UPDATE (for a better understanding why I'm asking for)
html
<div class="navbar navbar-default navbar-static-top" data-ng-controller="NavController as nav">
<div class="container">
<ul class="nav navbar-nav">
<a data-ui-sref="home" class="navbar-brand"><i class="logo"></i> Angular Express</a>
<li ui-sref-active="active"><a data-ui-sref="home">Home</a></li>
</ul>
<ul class="nav navbar-nav navbar-right" data-ng-if="!nav.isAuthenticated()">
<li><a data-ui-sref="session.login">Log in</a></li>
<li><a data-ui-sref="session.signup">Sign up</a></li>
</ul>
<ul class="nav navbar-nav navbar-right" data-ng-if="nav.isAuthenticated()">
<li><i class="fa fa-user"></i> <span ng-bind="nav.isAuthenticated().username"></span> <a href="/api/auth/logout" data-ng-click="nav.logout()">Logout</a></li>
</ul>
</div>
</div>
js
function NavController($rootScope, UserStorage){
var nav = this;
nav.isAuthenticated = function() {
UserStorage.get();
};
}
function UserLoginController($rootScope,$state, Users, UserStorage) {
var user = this;
user.data = {};
user.save = function() {
Users.login(user.data).then(function(response) {
console.log(response.data);
UserStorage.set(response.data);
$state.go('home');
})
.catch(function(response) {
console.log(response);
user.errors = response.data;
});
};
}
If I use like this I've got a $digest() iterations reached
RE UPDATE
(for chandermani comment)
function UserStorage($sessionStorage) {
return {
set: function(data) {
$sessionStorage.user = angular.toJson(data);
},
get: function() {
return angular.fromJson($sessionStorage.user);
},
del: function() {
delete $sessionStorage.user;
}
};
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…