如果选中复选框,则AngularJS打印文本

时间:2016-04-14 02:10:39

标签: javascript angularjs data-binding angularjs-scope

我正在尝试在<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>

我有文字打印,但没有选中复选框。或允许变更请帮忙:)

3 个答案:

答案 0 :(得分:1)

使用ng-true-value&amp; 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。默认情况下,复选框值为true / false。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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