我有一个ng-click调用函数,如下所示:
ng-click="vm.getTasks({status: 67})"
我有一系列不同的状态需要调用不同的元素,其中一个是
status: 69|71
如何正确解析此问题?第一个状态和其他类似状态(2位数字)工作正常。
我不能这样做:
ng-click="vm.getTasks({status: 69|71})"
答案 0 :(得分:4)
ng-click参数评估为javascript
67 is valid JS number type
但是
69|71
是表达式69“按位OR赋值”71.在这种情况下,结果为71。
如果要传递多个数字,则必须是有效的javascript表示
理想情况下数组
[69, 71]
或其他有效表达式,例如字符串
"69|71"
答案 1 :(得分:0)
在你的模板中:
ng-click="vm.getTasks({status: [69, 71]})"
在您的控制器中:
$scope.vm.getTasks = function(obj) {
var encoded = '';
angular.forEach(obj.status, function(value, key) {
if (key === 0) {
encoded = encoded + value
} else {
encoded = encoded + '|' + value;
}
});
// make call to backend using encoded
}
我个人更喜欢这个,因为它隐藏了这样一个事实,即服务器期待一些奇怪的东西,并且让你更明显地表达出对其他开发者有多种状态这一事实。但您也可以使用上面指出的字符串方法