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

时间:2014-10-18 07:05:20

标签: angularjs

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

考虑以下代码:

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

如何在不使用AJAX的情况下将100个动态生成的地址加载到$scope.addresses

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用ng-init为你的&#34;内联&#34;控制器:

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

另一种方法是here

<script>
  function SampleCtrl($scope){
     $scope.adresses = @Html.Raw(Json.Encode(Model));
      ...
  }
</script>

<div ng-controller="SampleCtrl" ng-repeat="address in addresses">

答案 1 :(得分:0)

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

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

<div ng-init="functionToAssignAddresses()">

 /* Populate your Addresses here.*/   

</div>

有关详细信息,您可以按照ng-init的文档here进行操作。