将数据预加载到$scope中的最Angular-y的方法



我的应用程序的部分是完整的AJAX,有些是传统的POST和重载。使用$http将数据导入$scope是一项琐碎的任务,但是,当数据在页面加载期间(以每个人都知道和喜欢的正常MVC方式)而不是事后通过AJAX可用于模板时,该怎么办?

考虑以下代码:

<div ng-repeat="address in addresses">
  {{ address.address1 }}
  {{ address.city }}, {{ address.state }} {{ address.zip }}
</div>

如果不使用AJAX,我该如何将100个动态生成的地址加载到$scope.addresses中?

最简单的方法是对"内联"控制器使用ng init:

@model SampleViewModel
...
<div ng-controller="SampleCtrl" ng-init="adresses=@Model.AdressesList">

这里展示了另一种方法:

<script>
  function SampleCtrl($scope){
     $scope.adresses = @Html.Raw(Json.Encode(Model));
      ...
  }
</script>
<div ng-controller="SampleCtrl" ng-repeat="address in addresses">

ng-init是angularJS在页面加载时对数据进行操作的选项。

在这里,在您的情况下,您可以实现一个函数,然后将这些动态生成的值分配到$scope.addresses中。

<div ng-init="functionToAssignAddresses()">
 /* Populate your Addresses here.*/   
</div>

有关更多信息,请参阅此处的ng-init文档。

最新更新