我有一个编码风格的问题。给出下面的代码,它使用http服务来检索数据,然后使用控制器来执行该服务/工厂。看起来在控制器末端调用函数makePromise()似乎不是“正确”的做事方式。它有效,但有更好的方法来执行此代码吗?也许是最好的做法?我无法想象例如在控制器的末尾执行10个左右的语句...只是看起来不对。我只是在寻找更优雅的解决方案。
xmlResponseParse
答案 0 :(得分:2)
您不必将其包装在函数中。很多时候我的代码看起来与此类似。
DataService.getData()
.then(function(data) {
//console.log(data.MRData.StandingsTable.StandingsLists[0].DriverStandings)
$scope.driversList = data.MRData.StandingsTable.StandingsLists[0].DriverStandings;
}, function(error) {
console.log('error')
})
有两种选择,第一种是在你的html中使用ng-init =“loadStuff()”。更清洁的解决方案可能是在UI-Router中使用Resolve。因此,路由上的加载数据会发生变化,并且可能会在进行GET时显示加载程序。
答案 1 :(得分:1)
这是一个很好的问题! 我找到的最好的方法是以下功能:
(function () { // init
// initialize values on your scope
})();
指令ng-init并不建议用它来加载控制器。
"您应该使用控制器而不是ngInit来初始化作用域上的值。" https://docs.angularjs.org/api/ng/directive/ngInit