javascript - Angular JS 中的 If 语句 (Ngif)

标签 javascript angularjs

我有这段代码,可以在连接到此应用程序时显示 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}} & {{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 不太熟悉。

最佳答案

您不在 Angular 表达式中使用“handlebars”语法。例如,这是正确的:

<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 将用户名与实际字符串“{{user.name}}”进行比较。这与执行以下操作相同:

var myVariable = 42;
if(myVariable === "myVariable"){
  // do something
}

无论如何,我并不完全确定你要做什么...用户名总是等于用户名,就像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 是否存在,请尝试以下语法:

<div ng-if="user.name">The user is logged in!</div>
<div ng-if="!user.name">The user is not logged in.</div>

关于javascript - Angular JS 中的 If 语句 (Ngif),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34757519/

相关文章:

javascript - 在 angularjs 页面中获取 mysql 结果

javascript - 如果在 ng-repeat 表中选中或取消选中复选框,如何 $watch

jquery - 将 angular.service 数据传递给 gaugechart Controller

javascript - Angularjs - 从 JSON 实例化数组

javascript - ng-click、ng-mouseover 等是否会创建观察者并减慢页面速度?它比 jQuery 事件绑定(bind)更好吗?

javascript - 我们可以在我们的 AMP 项目中本地托管 v0.js

javascript - Javascript ping 到页面顶部?

javascript - mac 窗口加载并不总是触发

javascript - 将 javascript 与 jquery 混合

javascript - 使用纯 javascript 将效果应用于特定的 lis