Angular -在循环中将字符串连接到$scope
Angular - concatenate string to $scope in loop
我有四个值的名字:
$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);
})
我想检查上面循环中的四个变量。有什么建议吗?
EDITED:
我想在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>
要检查循环中的变量并有条件地设置它,您可以这样做:
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
正如有人已经评论的那样,你不需要改变这些属性的值。0等于假,1等于真。
Material复选框应该将这些值解释为"false"或"true",所以我认为至少在通过复选框呈现数据时应该没问题。
尽管如此,请记住,复选框将在模型(属性)中"写入"适当的bool值,当它们改变时,您可能最终得到混合的0,1,true, false值。
希望这对你有帮助!
相关文章:
- AngularJS:ng之后,重复$scope值未按预期更新
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 如何使用密码检测网络中的状态连接
- $ionicplatform内的$scope不;不起作用
- 如何处理node.js节点mongodb中的连接和查询队列
- Rails-JQueryUIAutcomplete和AJAX不工作,可以't连接到数据库
- Twilio-显示所有连接参与者的远程参与者视频
- 操作放置在画布上的元素之间的连接
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- jQuery UI可排序-多连接列表拖动
- 使用$scope方法时的ControllerAs语法
- 如何使用offer/answer交换来自两个对等连接的流
- 在Qualtrics中,介绍如何动态连接两个滑块
- 如何将ngrepeat下的ngmodel绑定到$scope
- 另一个if(!$scope.$$phase)$scope$apply()szenario-需要帮助才能通关
- 使用优化器在慢速连接上加载main.js时需要js超时
- 如果连接类型为none,则Javascript Function Only警报
- GTK百老汇支持同时连接
- 如何在父级$scope、指令$scope和模态$scope之间进行连接
- 控制器$scope属性没有更新(套接字连接)