簡體   English   中英

通過Angular $ HTTP將URL參數傳遞給Rest方法

[英]Passing URL parameter to Rest Method through Angular $HTTP

我無法通過角度優化的html頁面將URL參數發送到rest方法。

我的休息方法:

    router.get("/url/id/:urlid",function(req,res){
    var query = "SELECT urlID AS libraryid, "
                + "URL AS libraryitem "
                + "FROM ?? "
                + "WHERE active = 1 "
                + "AND ?? = ? "
    whereClause = ['urls', 'urlid', req.params.urlid];
    query = mysql.format(query,whereClause);
    connection.query(query,function(err,rows){
        if(err) {
            console.log("Rest Call Error");
            res.json({"Error" : true, "Message" : "Error executing MySQL query", "Query" : query});
        } else {
            console.log("Rest Call Success", rows);
            res.json({"Error" : false, "Message" : "Displayed the url  "+req.params.urlid, "Query" : query, "URLs" : rows});
        }
    });

我可以直接調用rest方法並收到以下結果

{
  "Error": false,
  "Message": "Displayed the url  5",
  "Query": "SELECT urlID AS libraryid, URL AS libraryitem FROM `urls` WHERE active = 1 AND `urlid` = '5' ",
  "URLs": [
    {
      "libraryid": 5,
      "libraryitem": "url"
    }
  ]
}

控制器

app.controller("UrlByIDController", function ($scope, $http) {
$http.get('/api/url/id/{{urlid}}')
.then(function(data) {
  console.log("URl loading", data)
  $scope.links = data['URLs'];
})
.catch(function(response) {
  console.error('Loading URL error', response.status, response.data);
})
.finally(function() {
  console.log("finally finished loading urls");
});
});

html模板

<div class="form-group">
    <label for="txtURL" class="control-label col-xs-3">URL</label>
    <div class="col-xs-3" ng-controller="UrlByIDController" >
      <input  type="text" 
              id="txtURL" 
              class="ng-valid ng-dirty" 
              ng-model="formData.txtURL" 
              value="{{links.libraryitem}}" 
              placeholder="URL of Ad" />
    </div>
  </div>

當我調試頁面時,我沒有收到錯誤,但是傳遞給rest方法的id值是短語“ urlid”。 我確信這是我所缺少的基本知識。

您無法使用“ {{urlid}}”在Angular Controller中訪問您的urlid。 此語法只能在HTML模板中使用。

我看不到您的Controller如何從中獲取urlid值。 一種可能是訪問$ scope中的urlid。 但是您必須先將其設置為:

$http.get('/api/url/id/' + $scope.urlid)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM