使用angularjs中的可选参数来使用端点

时间:2017-10-18 07:21:14

标签: javascript angularjs

我有一个包含2个部分的表格。从每个部分,必须至少选择一个值。 我知道如何传递强制参数,但根据用户选择传递适当的参数是我不确定的。

有什么想法吗?

模板plunker here

 <form>
  <div>
   <label>Section 1</label></br>
   <input type="checkbox" name="chkBox1" value="chkBox1">chkBox1<br>
   <input type="checkbox" name="chkBox2" value="chkBox2">chkBox2<br>
   <input type="checkbox" name="chkBox3" value="chkBox3">chkBox3<br>
  </div>
  <div>
   <label>Section 2</label>
   <div>
    Optional 1:
    <input type="text" name="fname" value="fname" />
   </div>
   <div>
    Optional 2:
    <input type="text" name="lname" value="lname" />
   </div>
  </div>
  <button ng-click="getAll()">Get result</button>
 </form>

控制器功能

 $scope.getAll = function() {
    return $http.get('/api/testing?chbox1='+ 1 +'&chbox3=' + 1 
     +'&chbox2=' + 0 +'&optional1=' + fname +'&optional2=' + lname);
    },

1 个答案:

答案 0 :(得分:0)

您可以根据fname&amp; lname定义与否:

return $http.get('/api/testing?chbox=' + 1 + '&chbox3=' + 1 + '&chbox2=' + 0 + ((fname !== undefined) ? '&optional1=' + fname : '') + ((lname !== undefined) ? '&optional2=' + lname : ''));
},

我使用三元条件更快地编写它,但你也可以在这种情况下使用多个条件:

$scope.getAll = function(){
    var url;
    if (fname !== undefined && lname !== undefined)
        url = '/api/testing?chbox1='+ 1 +'&chbox3=' + 1 +'&chbox2=' + 0 +'&optional1=' + fname +'&optional2=' + lname;
    else 
        if (fname !== undefined)
            url = '/api/testing?chbox1='+ 1 +'&chbox3=' + 1 +'&chbox2=' + 0 +'&optional1=' + fname;
        if (lname !== undefined)
            url = '/api/testing?chbox1='+ 1 +'&chbox3=' + 1 +'&chbox2=' + 0 +'&optional2=' + lname;
}

第二种选择不太优雅!