#javascript #angularjs #rest #spring-boot #thymeleaf
#javascript #angularjs #остальное #весенняя загрузка #thymeleaf
Вопрос:
У меня есть функция angular для вызова службы rest, но она не может получить значение из HTML-файла. когда я нажимаю отправить, появляется $scope.ProductForm, хотя у меня все еще есть значение на моей HTML-странице.
Main.js
$scope.products = [];
$scope.productForm = {
ID:1,
Name:"",
Description:"",
URL:""
};
_refreshProductData();
//Add or Update Product
$scope.submitProduct = function() {
var method = "";
if ($scope.productForm.ID == -1) {
method = "POST";
} else {
method = "PUT";
}
$http({
method: method,
url: '/product',
data: angular.toJson($scope.productForm),
headers: {
'Content-Type': 'application/json'
}
}).then(_success, _error);
}
index.html
<form ng-submit="submitProduct()">
<table border="0">
<tr>
<td>ProductID</td>
<td>{{productForm.ID}}</td>
</tr>
<tr>
<td>Product Name</td>
<td><input type="text" ng-model="productForm.Name" /></td>
</tr>
<tr>
<td>Product Description</td>
<td><input type="text" ng-model="productForm.Description" /></td>
</tr>
<tr>
<td>Product URL</td>
<td><input type="text" ng-model="productForm.URL" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit" class="blue-button" />
</td>
</tr>
</table>
</form>
данные: angular.toJSON ($scope.ProductForm) могут иметь значение из index.html
Ответ №1:
Как уже говорили другие, вам нужно решить ряд проблем.
main.js
не имеет определенной функции_refreshProductData
. Я предполагаю, что это нарушает ваш скрипт и почему$scope.submitProduct()
не выполняется.- При определении вашей
_refreshProductData
функции вам необходимо прикрепить ее к контроллеру$scope
(т.$scope._refreshProductData = function(){//refresh data}
Если вы хотите, чтобы она была доступна для шаблона html. В противном случае вам не нужно было бы присоединять$scope
к нему. Вам нужно будет обновить свой вызов этой функции на основе выбранного вами подхода.
Ответ №2:
$scope._refreshProductData();--> you should call your function this way.
_refreshProductData();-->_refreshProductData is not defined(F12)
Я предположил, что функция была создана в моем предыдущем ответе.
1)create your function in main.js
$scope._refreshProductData() = function()
{
write codes here...
}
затем вызовите функцию на месте
2) $scope._refreshProductData();
Комментарии:
1. Хотя этот код может решить вопрос, объяснение того, как и почему это решает проблему, действительно помогло бы улучшить качество вашего поста и, вероятно, привело бы к большему количеству голосов «За». Помните, что вы отвечаете на вопрос для читателей в будущем, а не только для человека, задающего сейчас. Пожалуйста, отредактируйте свой ответ, чтобы добавить пояснения и указать, какие ограничения и допущения применяются.
2. когда я меняю форму, _refreshProductData(); -> $scope. _refreshProductData(); ошибка: $ scope. _refreshProductData не является функцией
3. можете ли вы поделиться всем кодом. Вы уверены, что у вас есть функция с именем _refreshProductData в main.js.создайте свою функцию в main.js ($область видимости. _refreshProductData = function(){ напишите коды здесь }), затем вызовите функцию на месте ($scope. _refreshProductData()_refreshProductData())