Циклические данные JSON с помощью AngularJS в Asp.net MVC

0

Я пытаюсь получить записи через ajax и отображение с помощью AngularJS. Но мой код даже не вызывает действие контроллера.

Я пытаюсь использовать этот код.

<div ng-controller="MyCtrl">
<div ng-repeat="result in products">
    {{result.ProductName}}
</div>
</div>

Ajax:

function MyCtrl($scope) {
  $.ajax({
    url: "/Products/Get/",
    type: "POST",
    success: function (data) {
      // Success message
      var myApp = angular.module('myApp', []);
      $scope.products = data;
    },
    error: function () {
      // Fail message
    },
  });
}

Я использую этот пост, чтобы он работал.

  • 0
    У вас нет контроллера MyCtrl
Теги:
asp.net-mvc
asp.net-mvc-4

2 ответа

2

Ваш подход неправильный. Вы должны использовать директиву angularJS для вызова сервисов для использования json-данных.

<script type="text/javascript">
    var app = angular.module('myApp', []); 
    app.controller('MyCtrl', function ($scope, $http) {  
        $http.get('/Products/Get/').success(function (data) {  
            $scope.products = data;
        });
    });
</script>

Несколько дней назад я написал статью на том же. Вы можете пройти здесь. Это может быть полезно.

  • 0
    Поскольку success является устаревшим , вы должны использовать then вместо success .
0

вам нужно объявить имя module в angularjs и не забудьте добавить имя модуля в свой <body data-ng-app="app"> или тег html.. как это сделать <body data-ng-app="app"> а затем попробовать вот так:

<script>
var app = angular.module('app',[]);

app.controller('MyCtrl',function($scope,$http){

bindData();
function bindData(
    // it will be nice, if this code your separate to file service...    
    $http.get('/Products/Get').success(function (callBack) {  
            $scope.products = callBack.data;
    });
);
});

</script>

и лучшая реализация, например:

// in controller, injected you service name like this..
app.controller('MyCtrl',function($scope,$http ,myServices){

bindData();
function bindData(
  var promiseGet = myServices.GetAll();
  promiseGet.then(function(callBack){ // success
    $scope.products = callBack.data;

   }     
 ,function(error){ // error
     console.log(error);
   });
 );    

});

app.service('myServices',function($http){
var vm = this;
vm.GetAll = function(){
         return $http.get('/Products/Get');
     }
});

и введите не POST, если вы хотите получить данные в функции ajax.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню