AngularJs指令问题

时间:2015-09-09 07:02:16

标签: angularjs asp.net-mvc angularjs-directive xmlhttprequest asp.net-web-api

   app.directive('ensureUnique', ['$http', function ($http) {
        return {
        require: 'ngModel',
        link: function (scope, ele, attrs, c) {
            scope.$watch(attrs.ngModel, function () {

$http.post("http://localhost:xxxx/api/Persons/CheckUserName", c.$modelValue).success(function (data) {
                    c.$setValidity('unique', false);
                }).error(function () {
                    c.$setValidity('unique', false);
                });
            });
        }
    }
}]);

服务器:

       [HttpPost]
        public bool CheckUserName(string field)
        {
            bool IsUnique = false;
            if(field=="Meee")
            {
                IsUnique = false;
            }
            else
            {
                IsUnique = true;
            }
            return IsUnique;
        }

我正在尝试验证输入的用户是否已存在。我正在使用VS 2015.好吧我的问题是我在CheckUserName API中有一个断点。它没有击中!当我尝试访问不同的API断点时,像往常一样?

angular
       .module('app')
       .controller('Main', function ($scope, $http) {
           $scope.GetPersons = function () {
               $http.get("http://localhost:xxxx/api/Persons/GetPersons").success(function (data) {
                   $scope.Persons = data;
               }).error(function () {
                   alert("failed");
               });

           },
           $scope.PostPersons = function () {

               $http.post("http://localhost:xxxx/api/Persons/GetPersonsWithAge", $scope.Persons).success(function (data) {
                   $scope.PersonsWAges = data;
                   alert("Success");
               }).error(function () {
                   alert("failed");
               });

           }
       });

注意:这是两个不同的项目,但都是从调试开始的。

1 个答案:

答案 0 :(得分:1)

当你尝试将参数传递给post方法时,你需要在JSON第二个参数中以数据$http.post格式传递它。当您使用.Net MVC时,需要进行字符串化。

<强>代码

$http.post("http://localhost:xxxx/api/Persons/CheckUserName", JSON.stringify({
  field:  c.$modelValue
}))