繁体   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