У меня есть небольшая проблема с этой страницей AngularJS, она не отображает данные, которые она должна.Данные AngularJS не отображаются на странице
Я только недавно начал работать с угловым, поэтому указатель или совет приветствуются.
Вот завод, и контроллер:
var app = angular.module('mpDataApp', [])
.controller('MpMapController', MpMapController)
.factory('GetMpData', GetMpData)
function GetMpData($http) {
var data = [];
return {
getData: function() {
return $http.get('MpWatch/GetMpData').success(function (data, status, header, config) {
}).then(function (results) {
data = ParseMpResults(results.data.d);
return data;
})
},
};
}
function MpMapController(GetMpData) {
GetMpData.getData().then(function (data) {
angular.extend(this, {
mpData: data,
});
});
};
А вот разметка:
//ng-app declared higher in the markup
<div>
<div ng-controller="MpMapController as mp">
<ul >
<li>
Number of records: {{mp.mpData.length}}
</li>
<li ng-repeat="mps in mp.mpData" >
<p>{{mps.deviceId}}</p>
</li>
</ul>
</div>
</div>
И проблема, во время отладки можно увидеть, что «mpData» имеет правильный данные, как то, что он должен показывать. Но страница не отображает его, и никаких ошибок не отображается. В Visual Studio я могу навести курсор на «mpData» в разметке, и он показывает, что данные присутствуют.
Тем не менее он не отображается на странице. Заранее благодарим за помощь, консультацию или указатель.
Питер
Update:
Вот что сделал трюк, спасибо за все ответы, это помогло мне получить это право.
function GetMpData($http) {
return {
getData: function() {
return $http.get('/MpWatch/GetMpData')
.then(function (response) {
return {
data: ParseMpResults(response.data.d),
}
});
},
};
};
function MpMapController(GetMpData) {
var mp = this;
var self = this;
GetMpData.getData().then(function (mpResults) {
angular.extend(self, {
mpData: mpResults.data,
})
});
};
Данные отображаются на странице сейчас правильно.
подход выглядит отлично. Когда вы проверяете элементы в своем браузере, dev tools вы видите? – RedJandal