2016-02-11 44 views
0

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

我的休息方法:

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}); 
     } 
    }); 

我可以直接調用其他方法,並收到下面的結果

{ 
    "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> 

當我調試頁面時,我沒有收到錯誤,但傳遞給其餘方法的id值是短語'urlid'。我相信這是我很想念的東西。

回答

0

您無法通過「{{urlid}}」訪問Angular Controller中的urlid。此語法只能用於您的HTML模板。

我無法在Controller中看到如何從中獲取您的urlid值。一種可能性是訪問$ scope中的urlid。但是,你必須先某處設置:

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

我設置了HTML模板下面的代碼:。當( '/廣告/製作/:URLID',{ \t \t templateUrl: 'AdForm.html' })我肯定會在所有情況下包含urlid。 –