AngularJS在Post方法上出错

时间:2016-05-09 08:49:30

标签: html angularjs

我在.net中创建了一个RESTful api。这个html是用angularJS创建的。

问题是,当页面加载时,我收到以下错误: enter image description here

并且“插入”按钮不再起作用。

这是我的插入脚本,完整的html可以在链接中找到:

$scope.insert = function insert() {
        var data = {"id": 3, "name": $scope.name, "description":$scope.description , "price": $scope.price, "categoryid": $scope.categoryid};
        $http.post(
            'http://localhost:22258/api/product',
            JSON.stringify(data),
            {
                headers: {
                    'Content-Type': 'application/json'
                }
            }
        ).success(function (data) {
            $scope.products.push(data);
        });

https://jsfiddle.net/0xb2nh9o/

如果您愿意帮我制作“编辑”按钮,则可以使用以下模型:https://jsfiddle.net/benfosterdev/UWLFJ/将HTTPPut设为api,这将非常棒。

所有Restful请求都有效,api有效,使用PostMan进行测试

我是AngularJS的新手,所以你的帮助对我来说非常有用。非常感谢!

3 个答案:

答案 0 :(得分:1)

您的插入功能是'ProductController'的一部分,而不是'FormCtrl'。

所以在你的HTML中,这样做:

<div ng-controller="ProductController">

你将摆脱这个错误。

答案 1 :(得分:0)

如果您打开the URL reported in the error trace,您会看到角度抱怨“FormCtrl”为undefined

那是因为你在这里命名了你的控制器ProductController

app.controller("ProductController", function ($scope, $http) {

但要求FormCtrl在这里:

<div ng-controller="FormCtrl">

进行那些匹配,那个错误就会消失。

答案 2 :(得分:0)

您在模板ProductControllerFormCtrl中定义了2个控制器。 由于您没有formCtrl 的Controller定义,因此会引发错误。

如果要同时保留它们,请为formCtrl定义控制器或从模板中删除控制器使用。