【发布时间】:2014-12-21 04:26:52
【问题描述】:
刚开始使用 Angular,我正在使用复选框来确定在获取请求期间发送哪些参数(这是我的尝试):
<input type="checkbox" ng-click="submit('color[]', 'red')"/>
<input type="checkbox" ng-click="submit('color[]', 'green')" checked/>
<input type="checkbox" ng-click="submit('color[]', 'blue')"/>
我有一个变量$scope.params 存储我的http get 请求的参数。我的提交功能很简单:
$scope.submit = function (attribute, value) {
$scope.params[attribute] = value;
};
它只是将color[] 添加到 params 对象。与收音机不同,复选框值可以存储为数组并按如下方式提交:api?color[]=red&color[]=green 因为我的后端是 PHP,这是首选格式。但是,我的提交功能每次都会简单地覆盖它。我不确定如何使用相同的“密钥”存储多个参数。
我的另一个问题是 ng-click 不适合此任务,因为它不采用复选框的当前状态。请注意,我的绿色复选框最初加载为选中状态。有没有办法将此绑定到我的 $scope.params 对象?
理想情况下,我想实现类似的东西:
$scope.params = {
"color[]" = ['red', 'green', 'blue']
};
根据下面分号的回答,我可以使用:
<input type="checkbox" ng-model="params.colors[]" ng-true-value="'red'"/>
<input type="checkbox" ng-model="params.colors[]" ng-true-value="'blue'"/>
<input type="checkbox" ng-model="params.colors[]" ng-true-value="'green'"/>
但是用"[]" 命名任何东西都会破坏代码。
【问题讨论】: