Angularjs将$ scope分配给预先存在的MVC模型数据

时间:2015-06-05 19:34:27

标签: javascript asp.net asp.net-mvc angularjs asp.net-mvc-4

所以我使用ASP.NET和MVC 5.我有一个名为'Employee'的模型,它拥有'FirstName'值。我有一个Employees列表,我正在尝试使用angular来抓取Employee中的所有'FirstName',只需将它们显示在列表中。

我假设我需要一个范围来执行此操作,那么如何将所有FirstName值分配给范围?

这是一些代码

// Controller.js

var myApp = angular.module('myModule', []);
myApp.controller('myController', function ($scope) { 
   $scope firstnames;
});

Index.cshtml

@model IEnumerable<Test.Models.Employee>

<html ng-app="myModule">
    <div ng-controller="myController">
        <script>
            var nameArray = [];
            @foreach (var d in Model)
            {
              @:nameArray.push("@d.FirstName");
            }

            firstnames = nameArray;
        </script>

        <li ng-repeat="name in firstnames">
            {{name}}
        </li>
    </div>
</html>

因此,脚本的工作原理是它成功收集了所有值,但我无法将其传递给范围。

我在线查看,人们使用$ http或JSON序列化。我试图实现我看到的一些例子,但无济于事。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

<html>没有<body>标记?无论如何,尝试在实际的控制器代码中推进你的模型:(我正在将html更改为div

@model IEnumerable<Test.Models.Employee>

<div ng-app="myModule">
  <div ng-controller="myController">    
     <li ng-repeat="name in firstnames">
        {{name}}
     </li>
  </div>
</div>

<script>
  var myApp = angular.module('myModule', []);
  myApp.controller('myController', function ($scope) { 
    $scope.firstnames = []
    @foreach (var d in Model)
    {
      @:$scope.firstnames.push("@d.FirstName");
    }  
  });
</script>