Javascript AngularJS未在视图中显示JSON响应
根据要求更新,包含更多信息: 我有一个调用web方法的控制器,我希望返回的JSON绑定到控制器中名为applications的变量。警报正确显示JSON,但我在视图中什么也看不到 注意:我在控制器中使用手动数据尝试了$scope和'this',只有'this'起作用,这就是为什么我使用它而不是下面的$scopeJavascript AngularJS未在视图中显示JSON响应,javascript,json,angularjs,Javascript,Json,Angularjs,根据要求更新,包含更多信息: 我有一个调用web方法的控制器,我希望返回的JSON绑定到控制器中名为applications的变量。警报正确显示JSON,但我在视图中什么也看不到 注意:我在控制器中使用手动数据尝试了$scope和'this',只有'this'起作用,这就是为什么我使用它而不是下面的$scope app.controller('AppsController', function ($http, $scope) { $http.post('/WebMethod/DoStuff',
app.controller('AppsController', function ($http, $scope) {
$http.post('/WebMethod/DoStuff', {}).
success(function (data, status, headers, config) {
alert(data);
this.applications = data;
})
}
我的看法是这样的
<div class="container" ng-controller="AppsController as appCtrl">
<div class="row" ng-repeat="application in appCtrl.applications">
<div class="col-xs-6 applicationName" ng-click="appCtrl.expand($index)">{{application.name}}</div>
</div></div>
这不是你所期望的。试试这个:
app.controller('AppsController', function ($http, $scope) {
var self = this;
$http.post('/WebMethod/DoStuff', {}).
success(function (data, status, headers, config) {
alert(data);
//or you can use $scope.applications = data; instead
self.applications = data;
})
}
有关Javascript中此
的解释,请参阅。您使用的是controllerAs
语法,这意味着您不将变量放在控制器中的$scope
上,而是放在控制器实例本身上
将数据放在上是正确的,但您必须保持对实例本身的引用,因此需要执行以下操作:
app.controller('AppsController', function ($http, $scope) { // you probably don't need to inject the $scope
var ctrl = this;
$http.post('/WebMethod/DoStuff', {}).
success(function (data, status, headers, config) {
alert(data);
ctrl.applications = data;
});
}
这是可行的,出于某种原因,我还必须用JSON.parse()包装数据。感谢您的回复,通过您的链接对“这一点”进行了非常有益的了解,这也是我选择此答案的原因。
app.controller('AppsController', function ($http, $scope) { // you probably don't need to inject the $scope
var ctrl = this;
$http.post('/WebMethod/DoStuff', {}).
success(function (data, status, headers, config) {
alert(data);
ctrl.applications = data;
});
}