繁体   English   中英

AngularJS布尔值始终在范围内返回true

[英]AngularJS boolean value always returns true in scope

因此,我有一个采用两个特定参数(subjectID和isCalc)的状态:

  .state('tabsController.formulaPicker', {
    url: '/my/:subjectID?withCalc',
    views: {
      'tab1': {
        templateUrl: 'templates/formulaPicker.html',
        controller: 'formulaPickerCtrl'
      }
    }
  })

在我的控制器中:

  .controller('formulaPickerCtrl', function ($scope, $stateParams, $http) {
    $scope.subjectID = $stateParams.subjectID;
    $scope.subjectName = '';
    $scope.withCalc = $stateParams.withCalc;
    $scope.formulas = [];

    $http.get('../Data.json')
      .success(function (data, status, headers, config) {
        // Alerts correct value
        alert($scope.withCalc);
        // Always returns true
        $scope.subjectSet = ($scope.withCalc) ? data.subjects : data.subjects_no_calc;
        $scope.subjectName = $scope.subjectSet[$scope.subjectID].name;
        $scope.formulas = $scope.subjectSet[$scope.subjectID].formulas;
      })
      .error(function (data, status, headers, config) {
      })
      .then(function (result) {
      });
  })

但是在声明作用域的subjectSet值的subjectSet行中,我有一个三元运算符来检查isCalc bool值,它从我请求的json文件中返回一组特定的数据。 每次加载控制器时,它都会警告isCalc值,该值是我想要的&是正确的。 但是,即使三元表达式警告为false,也始终返回true。 这使我返回了错误的值集。

我从第一个控制器获得两个ui-sref属性:

ui-sref="tabsController.formulaPicker({subjectID: $index, withCalc: true})"

对于第一部分&

"tabsController.formulaPicker({subjectID: $index, withCalc: false})"

对于第二部分。

请记住,它会警告正确的值,但是三元表达式无论如何始终返回true。

先感谢您。

检查$scope.withCals是否不是字符串对象。 您可能需要将其显式转换为布尔值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM