【发布时间】:2016-09-27 03:41:41
【问题描述】:
所以我有一个带有两个特定参数(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 值的那一行,我有一个检查isCalc bool 值的三元运算符,它从我请求的json 文件中返回一组特定的数据。每次我加载控制器时,它都会提醒 isCalc 值,这是我想要的并且是正确的。但是三元表达式总是返回 true,即使它警告为 false。这会导致我返回错误的值集。
我来自第一个控制器的两个ui-sref 属性:
ui-sref="tabsController.formulaPicker({subjectID: $index, withCalc: true})"
第一部分 &
"tabsController.formulaPicker({subjectID: $index, withCalc: false})"
第二部分。
请记住,它会提醒正确的值,但无论如何三元表达式总是返回 true。
提前谢谢你。
【问题讨论】:
-
看起来
$scope.withCalc是 String 类型。但必须是 Boolean 类型。试试这个$scope.withCalc = $stateParams.withCalc=="true"
标签: javascript ios angularjs cordova ionic-framework