我有四个名字值:
$scope.restaurant.restaurantIsTop
$scope.restaurant.restaurantIsRecommended
$scope.restaurant.restaurantIsNew
$scope.restaurant.restaurantIsPromoted
每个都可以是0或1。我想检查它们的值是否等于1,将其更改为true,否则将为false。
我可以使用此方法为四个变量执行此操作:
if ($scope.restaurant.restaurantIsTop == 1 ?
$scope.restaurant.restaurantIsTop = true :
$scope.restaurant.restaurantIsTop = false);
if ($scope.restaurant.restaurantIsNew == 1 ?
$scope.restaurant.restaurantIsNew = true :
$scope.restaurant.restaurantIsNew =false);
if ($scope.restaurant.restaurantIsRecommended == 1 ?
$scope.restaurant.restaurantIsRecommended = true :
$scope.restaurant.restaurantIsRecommended =false);
if ($scope.restaurant.restaurantIsPromoted == 1 ?
$scope.restaurant.restaurantIsPromoted = true :
$scope.restaurant.restaurantIsPromoted =false);
绝对可行,但它不是多价值的有效方式。所以我创建了一个数组:
var varietyArray = ["restaurantIsTop" ,
"restaurantIsRecommended",
"restaurantIsNew",
"restaurantIsPromoted"
];
angular.forEach (varietyArray, function (val) {
console.log($scope.restaurant.val);
})
我想在上面的循环中检查四个变量。有什么建议吗?
已编辑:
我想在Angular Material复选框中显示它们:
<div class="col-sm-12">
<div class="md-form-group">
<md-checkbox ng-model="restaurant.restaurantIsTop ">
best
</md-checkbox>
<md-checkbox ng-model="restaurant.restaurantIsRecommended">
suggested
</md-checkbox>
<md-checkbox ng-model="restaurant.restaurantIsNew">
new
</md-checkbox>
<md-checkbox ng-model="restaurant.restaurantIsPromoted">
promote
</md-checkbox>
</div>
</div>
答案 0 :(得分:1)
要检查循环中的变量并有条件地设置它,你可以这样:
var $scope = {
restaurantIsTop: 1,
restaurantIsRecommended: 0,
restaurantIsNew: 0,
restaurantIsPromoted: 1
};
var varietyArray = ["restaurantIsTop" ,
"restaurantIsRecommended",
"restaurantIsNew",
"restaurantIsPromoted"
];
angular.forEach (varietyArray, function (val) {
$scope[val] = ($scope[val]) ? false : true;
console.debug($scope[val]);
})
您可以使用$scope[VariablenameAsString]
<强> jsfiddle 强>
答案 1 :(得分:0)
正如有人已经评论过,您不需要更改这些属性的值。 0等于false,1等于true。
“材料”复选框应将这些值解释为&#34; falsy&#34;或&#34; truthy&#34;所以我认为你应该没事,至少在通过复选框呈现数据时。
但请记住,复选框会&#34;写&#34;模型(属性)中的适当bool值,当它们发生变化时,你可能会得到混合的0,1,真,假值。
希望这有帮助!