我正在尝试学习如何使用angular和javascript。请让我知道我做错了什么。
当我在文本框中输入内容时,它应该会显示
“您好{姓名},您想玩游戏吗?
它显示不带输入的字符串。
而且,当我运行它的时候,它会说
对象对象
。
(function (app) {
var JakesController = function ($scope, $http) {
$scope.JakesSampleModel = {name: ' '};
$scope.theSampleReturn = null;
var sendResponseData = function (response) {
if (response.data.error) {
console.log(data);
}
else {
$scope.theSampleReturn = response.data;
}
};
var sendResponseError = function (data) {
console.log(data);
}
$scope.senddata = function (params) {
return $http({
method: 'post',
url: '/home/servercall',
data: params
})
.then(sendResponseData)
.catch(sendResponseError);
};
};
app.controller("JakesController",['$scope', '$http', JakesController]);
}(angular.module("JakesFirstApp")));
下面是HTML:
<div id="OutterDiv" ng-controller="JakesController" ng-app="JakesFirstApp">
<div id="JakesButton" class="button" ng-click="senddata()">Submit</div>
<input type="text" id="JakesTextBox" ng-model="theSampleReturn" />
{{theSampleReturn.result}}
Json结果:
public JsonResult servercall(string name)
{
return Json(new { result = $"Hello {name}, Would you like to play a game?" }, JsonRequestBehavior.AllowGet);
}
发布于 2018-10-11 06:21:50
如果我理解你的问题是正确的,那么看起来解决方案是像这样更新你的模板:
<input type="text" id="JakesTextBox" ng-model="JakesSampleModel.name" />
然后更新您的控制器,以便在调用senddata()
时将名称正确发送到服务器:
$scope.senddata = function () {
// Construct params for post by getting data from your scope/model that's
// wired up to your input field
var params = { name : $scope.JakesSampleModel.name };
return $http({
method: 'post',
url: '/home/servercall',
data: params
})
.then(sendResponseData)
.catch(sendResponseError);
};
发布于 2018-10-11 06:23:55
在html中,尝试使用{{theSampleReturn}}而不是{{ theSampleReturn.result }},因为您似乎没有在任何地方设置theSampleReturn.result
https://stackoverflow.com/questions/52749471
复制相似问题