Я пытаюсь получить записи через 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
},
});
}
Я использую этот пост, чтобы он работал.
Ваш подход неправильный. Вы должны использовать директиву 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>
Несколько дней назад я написал статью на том же. Вы можете пройти здесь. Это может быть полезно.
success
является устаревшим , вы должны использовать then
вместо success
.
вам нужно объявить имя 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.
MyCtrl