将数据从MVC模型传递到Angular Controller

时间:2014-08-28 08:13:11

标签: javascript asp.net-mvc angularjs

我在mvc视图中有一个角度控制器。我需要将来自MVC模型的数据传递给角度控制器。目前,开发人员正在使用ngInit指令来传递此数据。

在xxx.cshtml中

<div ng-controller="AssessmentController" ng-init   ="Init('@Model.Status','@Model.ARN','@Model.AssessmentID','@Model.AssessorID',@Model.Contents, @Model.Date_of_Assessment.ToJsonTicks(),'@Model.HouseReferenceID',@Newtonsoft.Json.JsonConvert.SerializeObject(Model.House))">

我指出,根据Angular文档,ngInit指令不能用于初始化控制器。 https://docs.angularjs.org/api/ng/directive/ngInit

相反,我建议的是在ngInit指令和

中发送ID
<div ng-controller="AssessmentController" ng-init   ="Init('@Model.AssessmentID'">

然后使用$ http [https://docs.angularjs.org/api/ng/service/ $ http]服务从Angular控制器获取剩余的数据。

开发人员拒绝我的想法,说通过ngInit指令发送所有数据更快,而不必另外调用以获取Angular控制器中的数据。

你们对这种情况有什么看法?我现在唯一的一点就是这个代码是FUGLY而且不符合标准。您如何说服开发人员遵循我建议的路径。或者我在这里完全错了?

如果你必须将数据从MVC模型传递到Angular控制器,你会怎么做?

1 个答案:

答案 0 :(得分:0)

我在Razor MVC中有如何做的样本

MVC查看代码

<div ng-controller='myController'>
    <input type="hidden" id="companyId" value="@Model.CompanyId"/>
 </div>

Angular控制器代码,从视图中记录到控制台companyId值

 app.Controller("myController",['$scope',function($scope){
        console.log(document.getElementById('companyId').value);
 }]);