valore boolean AngularJS ritorna sempre vero nel campo di applicazione

quindi ho uno stato che prende due parametri specifici (subjectID & amp; isCalc):

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

nel mio controller ho:

  .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) {
      });
  })

ma nella riga in cui dichiaro il valore subjectSet del campo di applicazione, ho un operatore ternario che controlla il valore isCalc bool, restituisce un set specifico di dati dal file json che sto richiedendo. ogni volta che carico il controller avvisa il valore isCalc, che voglio & amp; è corretto. ma l'espressione ternaria ritorna sempre vera, anche se allertava il falso. questo mi fa restituire l'insieme sbagliato di valori.

i due ui-sref proprietà dal primo controller:

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

per la prima sezione & amp;

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

per la seconda sezione.

ricordate che avvisa il valore corretto, ma l'espressione ternaria ritorna sempre vero, non importa cosa.

grazie in anticipo.


En title : AngularJS boolean value always returns true in scope

2 Comments:

  1. verificare se $scope.withCals non è un oggetto stringa. potrebbe essere necessario convertirlo esplicitamente in Booleana.

  2. sembra che $scope.withCalc sia il tipo String. ma deve essere di tipo booleano. prova questo $scope.withCalc = $stateParams.withCalc=="true"

More similar articles:

  • JavaScript: perché il booleano ritorna sempre vero
  • funzione in C che ritorna sempre nonostante il valore vero
  • anno bisestile Base C ++ Booleana ritorna sempre vero
  • c ++ Valore booleano ritorna sempre erroneamente vero nella Ricerca 2-3 Albero
  • PHP "If true" test su array ritorna sempre vero?
  • perché il mio booleano del valore 0 ritorna vero?
  • funzione ricorsiva booleana ritorna sempre vero
  • perché "1" = = 1 ritorna vero in Javascript?
  • metodo ritorna sempre vero
  • quando ritorno vero in Javascript, ritorna come indefinito
  • String.find ritorna sempre vero (C ++)
  • funzione booleana che ritorna sempre vero
  • quando si confrontano gli elementi di array di due array, il risultato booleano ritorna sempre vero
  • se la condizione ritorna sempre vero
  • perché il mio metodo rubino ritorna sempre vero?
  • ritorna vero se tuple ha un valore?
  • test = "" su un booleano ritorna sempre vero
  • esiste un set per cui "in" ritorna sempre vero?
  • come fare funzione che prende blocco come parametro e un boolean e nel corpo se boolean è vero esegue quel blocco?
  • Yii Framework 2.0 $model- > validare ritorna sempre vero
  • jQuery Plugin all'evento Ritorno vero/falso
  • il rivelatore palindromo ritorna vero anche quando non è un palindromo
  • il servizio web ritorna sempre vero quando si convalidano i dati JSON
  • loop ritorna vero anche quando dovrebbe restituire false
  • dB cancella query ritorna sempre vero
  • il tipo JavaScript di voce = = = "indefinito" non ritorna mai vero
  • WordPress se la query ritorna sempre vero
  • perché islower ritorna sempre vero anche quando ci sono cifre?
  • perché controllare la funzione genitore iframe ritorna vero quando non sono coinvolti iframe?
  • valore booleano vero/falso all'interno del metodo println