【问题标题】:show active color when page loads for the first time - AngularJS第一次加载页面时显示活动颜色 - AngularJS
【发布时间】:2016-07-02 10:31:15
【问题描述】:

所以我有两个按钮,它们的作用是在单击其中一个按钮时显示各自的数据。

<div>
  <h1>Ng-show & ng-hide</h1>
  <p class="description">Click on the "show"-link to see the content.</p>
  <button ng-click="showme=true" ng-class="{activeButton: showme == true}">Show</button>
  <button ng-click="showme=false" ng-class="{activeButton: showme == false}">Hide</button> 

  <div class="wrapper">
    <p ng-hide="showme">It will appear here!</p>
    <h2 ng-show="showme">This is mah content, yo!</h2>
  </div>
</div>

现在,我添加了 ng-class 以在单击按钮时显示活动颜色(例如“红色”),而另一个按钮应返回其原始颜色(蓝色)。当页面加载时,我看到的第一件事是消息“它会出现在这里!”。这很好,但代表(“隐藏”)此消息的按钮没有活动的红色。

当页面第一次加载到这个按钮时,如何默认设置活动颜色?我想保持切换功能不变,我应该能够单击一个按钮并看到活动颜色。

您的帮助将不胜感激,在此先感谢!

【问题讨论】:

  • ng-init 或在控制器中定义showme...
  • 第一次加载页面时,变量showme没有任何值,所以等于undefined。使用上面的代码,将ng-class 的值更改为{activeButton: showme}{activeButton: !showme} 就可以了
  • 谢谢大家,这真的很有帮助! AngularJS 的全新用户

标签: javascript angularjs


【解决方案1】:

NullUndefined 类型彼此严格相等(==),彼此抽象相等(==)。[Ref]

在您的 ng-class 语句中,两个条件都没有得到满足,因此 class 不适用。在ng-show/hide 中,undefined 被评估为false,因此 “它会出现在这里!” 正在显示。

在控制器中将showme的值设置为true

var myApp = angular.module('myApp', []);
myApp.controller('myCtrl', function($scope) {
  $scope.showme = false;
})
.activeButton {
  color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
  <h1>Ng-show & ng-hide</h1>
  <p class="description">Click on the "show"-link to see the content.</p>
  <button ng-click="showme=true" ng-class="{activeButton: showme}">Show</button>
  <button ng-click="showme=false" ng-class="{activeButton: !showme}">Hide</button>

  <div class="wrapper">
    <p ng-hide="showme">It will appear here!</p>
    <h2 ng-show="showme">This is mah content, yo!</h2>
  </div>
</div>

【讨论】:

  • 在没有 == 的情况下将 showme 评估为布尔值会更简单
  • @charlietfl – 编辑好吗?你的意思是一样的吗?
  • 是的...少写,做同样的事情
  • @charlietfl – 我同意,但很少有初学者会觉得难以理解(我猜).. ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多