我有这段代码,显示连接到此应用程序时Facebook用户的用户名和图片。
<div class="item item-avatar" ng-controller="LoginCtrl" ng-show="showProfile">
<img src="{{user.picture}}">
<h2>{{user.name}}</h2>
<p>Reporter</p>
</div>
因此,如果用户使用Facebook使用该应用程序登录,则用户名和个人资料图片将显示... {{user.picture}}&amp; {{user.name}}所以我要做的是显示用户未登录的不同情况...如果用户未登录,我想显示纯文本,如“没有登录用户“。
所以尝试了这些代码并且没能得到它
<div ng-if="user.name !== '{{user.name}}'">
<div class="item item-avatar">
<img src="https://media.licdn.com/mpr/mpr/p/5/005/06f/16e/232e2d4.jpg">
<h2>No logged in user</h2>
</div>
</div>
<div ng-if="user.name === '{{user.name}}'">
<div class="item item-avatar" ng-controller="LoginCtrl" ng-show="showProfile">
<img src="{{user.picture}}">
<h2>{{user.name}}</h2>
<p>Reporter Name</p>
</div>
</div>
和
<div ng-repeater="user in users">
<div>{{user.name}}</div>
<div ng-show="isExists(user)">available
<div class="item item-avatar" ng-controller="LoginCtrl" ng-show="showProfile">
<img src="{{user.picture}}">
<h2>{{user.name}}</h2>
<p>Reporter</p>
</div>
</div>
<div ng-show="!isExists(user)">No logged in user</div>
</div>
使用ng-if或ng-repeater的任何解决方案或替代方案?不太熟悉AngularJS。
答案 0 :(得分:1)
你没有使用&#34;把手&#34; Angular表达式中的语法。例如,这是正确的:
<div id="{{user.name}}" ng-if="user.name">{{user.name}}</div>
这是不正确的:
<div id="{{user.name}}" ng-if="{{user.name}}">{{user.name}}</div>
确保您的网络浏览器的Javascript控制台保持打开状态。这将突出显示您的任何错误。
您正在使用的比较 - "user.name !== '{{user.name}}'"
- 无法正常工作。更具体地说,user.name
永远不会等于'{{user.name}}'
。这是因为您告诉Angular将用户名与实际字符串进行比较&#34; {{user.name}}&#34;。这与做这样的事情是一样的:
var myVariable = 42;
if(myVariable === "myVariable"){
// do something
}
我还不完全确定你要去那里,无论如何......用户名总是等于用户名,就像{{1 }}将始终等于myVariable
,myVariable
将始终等于42
。
42
如果您只想检查var myVariable = 42;
myVariable === "myVariable";
// false
myVariable === myVariable;
// true
42 === "42";
// false
42 === 42;
// true
42 == "42";
// true
myVariable === 42;
// true
myVariable === "42";
// false
myVariable == "42";
// true
myVariable === true;
// false
myVariable == true;
// false
是否存在,请尝试以下语法:
user.name