0
我不能让我的角度改变时的状态传递(UI路由器)的URL的帕拉姆:在快递API获取URL PARAM从角UI-路由器
.state('contact.detail', {
url: '/:contactId',
templateUrl: 'detail.html',
controller: 'DetailController'
})
在表达我的定义API,但问题是从我从ui路由器(上面)传递的URL获取参数。
server.js
var express = require('express');
var mysql = require('mysql');
var url = require('url');
var app = express();
app.use('/', express.static('../app'));
app.use('/bower_components', express.static('../bower_components/'));
var server = require('http').createServer(app);
var bodyParser = require('body-parser');
app.jsonParser = bodyParser.json();
app.urlencodedParser = bodyParser.urlencoded({ extended: true });
//mysql connection setup
var connection = mysql.createConnection({
host : "localhost",
port: "3306",
user : "root",
password : "",
database : "db",
multipleStatements: true
});
app.get('/:id', app.urlencodedParser, function(req,res){
var id = req.params.id;
console.log(id); // => :id instead of value
connection.query('SELECT * FROM contacts WHERE contactId = ?', [id], function (error, results) {
if(error) {
throw error;
}
else {
res.end(JSON.stringify(results));
}
});
});
server.listen(3000, function() {
'use strict';
});
在日志中我得到 “:ID”,而不是真正的价值,例如 “”。
我可以访问API手动
请大家看看plunker的状态的详细信息。
感谢cshion,我没有提到,我有HTTP与$ http服务调用,它是这个样子'$ http.get。( '/:身份证')成功(功能(数据){ data.forEach(function(row,index){ $ scope.myData.push(data); }); $ scope.gridOptions.data = data; })当我在server.js中硬编码ID变量到“45”(例如),数据成功在前端显示。问题是我在前端单击(更改状态)时在API(server.js)中获取此值(45)。 – corry
你是否将StateParams.contactId传递给$ http调用,就像.. $ http.get(''/“”+ $ stateParams.contactId)。 ? – cshion