Как отобразить информацию из поля ввода - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь больше узнать, как работать с angular и javascript.Пожалуйста, дайте мне знать, что я делаю не так здесь.

Когда я вводю что-то в текстовое поле, оно должно отображать

"привет {имя}, вы хотите поиграть в игру?

Он отображает строку без ввода.

Кроме того, когда я запускаю ее, он говорит:

объект Object

.

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

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

В вашем html попробуйте использовать {{theSampleReturn}} вместо {{theSampleReturn.result}}, потому что вы, кажется, нигде не устанавливали theSampleReturn.result

0 голосов
/ 11 октября 2018

Если я правильно понимаю ваш вопрос, то похоже, что решение состоит в том, чтобы обновить ваш шаблон следующим образом:

<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);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...