【问题标题】:AngularJS Printing text if checkbox is checked如果选中复选框,则AngularJS打印文本
【发布时间】:2016-08-05 09:21:02
【问题描述】:

我正在尝试在页面上打印 <h1> 标记中的文本,具体取决于是否选中了复选框。

$scope.EmailMe = function(email) {
    if($scope.emailchecked == 1) {
        $scope.test = "emailSent";
    } else {
        $scope.test = "nothing";
    }
    }

HTML 是:

        <input type="checkbox" ng-model="emailchecked" ng-change="EmailMe(1)">
        <h1> @{{test}} </h1>

我有文本打印,但未选中复选框。或允许更改请帮助:)

【问题讨论】:

  • 你想在复选框中有0 & 1 值吗?
  • @NishanthMatha 现在可以选中复选框:)。但不幸的是,文本不再打印。我知道我的代码对于 Angular 新手来说很乱,有没有更好的方法来检查是否检查了某些内容?
  • @PankajParkar 我知道它可能会丢失,但我不确定它应该如何存在

标签: javascript angularjs data-binding angularjs-scope


【解决方案1】:

使用ng-true-value & ng-false-value,这样会根据选择为您提供1/0 值。

<input type="checkbox" ng-model="emailchecked"
  ng-true-value="1" 
  ng-false-value="0" 
  ng-change="EmailMe(emailchecked)">

Demo Plunkr

即使您不使用ng-true-value,但这也不会使您的模型值保持在 0/1。默认复选框值为真/假。

【讨论】:

  • 非常感谢,+1 教会了我我不知道的内置 angularJS 功能
【解决方案2】:

HTML

  <body ng-controller="MainCtrl">
    <input type="checkbox" ng-model="emailchecked" ng-change="EmailMe()">
    <h1> @{{test}} </h1>
  </body>

控制器

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  $scope.EmailMe = function() {
    if($scope.emailchecked == 1) {
        $scope.test = "emailSent";
    } else {
        $scope.test = "nothing";
    }

    };

});

http://plnkr.co/edit/EfIMMn7Be7QL258aUiXW

在您的代码中,您正在更改不需要的 emailchecked

【讨论】:

    【解决方案3】:

    您需要将 if(email = 1) 更改为 if(email == 1)。缺少一个等价物

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多