如何在呈现页面之前从服务器读取Javascript对象
“我的页面”使用与仅在服务器上定义的对象“发票”接口的指令 我想知道停止呈现页面以完成加载对象的最佳方法是什么,以避免对象属性出现“未定义”错误如何在呈现页面之前从服务器读取Javascript对象,javascript,angularjs,Javascript,Angularjs,“我的页面”使用与仅在服务器上定义的对象“发票”接口的指令 我想知道停止呈现页面以完成加载对象的最佳方法是什么,以避免对象属性出现“未定义”错误 angular.module("adocApp") .controller("ctrl", function ($scope, $http ) { $scope.loadingIsDone = false; //variable that stop rendering of page
angular.module("adocApp")
.controller("ctrl",
function ($scope, $http ) {
$scope.loadingIsDone = false; //variable that stop rendering of page
$http.get("Home/init").success(function (data) {
$scope.invoice = data;
$scope.loadingIsDone = true; //this start rendering with ng-if... but seems bad solution
});
});
您可以使用
DIV
元素在视图中包装HTML,并仅在从服务器获取发票后显示它
<div ng-if="invoice">
.... your directive here ......
</div>
.... 你的指示。。。。。。
当然,您可以使用
ng if
(无需包装)以相同的方式显示指令您可以在视图中使用DIV
元素包装HTML,并仅在从服务器获取发票后显示它
<div ng-if="invoice">
.... your directive here ......
</div>
.... 你的指示。。。。。。
当然,您可以使用
ng以相同的方式显示指令,如果(无需包装)您可以尝试解析。在加载路由之前,使用resolve从某些服务获取数据,然后它将仅在resolve承诺结束后呈现页面。您在哪里看到未定义的
?使用实际错误更新问题$http get异步请求。。。然后,如果在我的指令中有:或数量和产品列表在渲染时不存在。解决方法您可以尝试。在加载路由之前,使用resolve从某些服务获取数据,然后它将仅在resolve承诺结束后呈现页面。您在哪里看到未定义的
?使用实际错误更新问题$http get异步请求。。。那么,如果在我的指令中有一些:或 数量和产品列表在渲染时不存在。太好了!!但这让我避免了使用'loadingIsDone'变量及其逻辑。这是可行的,但问题是:“这是实现从服务器读取资源逻辑的更好方法吗?”我的案例是一个单页应用程序,将来它将与其他对象(而不是“发票”)一起工作。谢谢!!!:)@treep否,您应该解析对象并将其注入控制器()。更多细节很好!!但这让我避免了使用'loadingIsDone'变量及其逻辑。这是可行的,但问题是:“这是实现从服务器读取资源逻辑的更好方法吗?”我的案例是一个单页应用程序,将来它将与其他对象(而不是“发票”)一起工作。谢谢!!!:)@treep否,您应该解析对象并将其注入控制器()。更多细节