0
所以我這需要兩個特定參數的狀態(subjectID & isCalc):AngularJS布爾值總是在範圍返回true
.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
值的行,我有一個三元運算符檢查isCalc
bool值,它從我請求的json文件返回一組特定的數據。每次加載控制器時,都會發出isCalc值,我想要&是正確的。但是三元表達式總是返回true,即使它提示錯誤。這導致我返回錯誤的一組值。
我從第一控制器2個ui-sref
屬性:
ui-sref="tabsController.formulaPicker({subjectID: $index, withCalc: true})"
用於第一部分 &
"tabsController.formulaPicker({subjectID: $index, withCalc: false})"
用於第二部分。
記住它提醒正確的值,但三元表達式總是返回true,無論如何。
預先感謝您。
看起來像'$ scope.withCalc'是* String *類型。但必須是*布爾型*類型。試試這個'$ scope.withCalc = $ stateParams.withCalc ==「true」' –