繁体   English   中英

将数据从MVC模型传递到Angular控制器

[英]Passing data from MVC model to an Angular Controller

我在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控制器要更快。

你们如何看待这种情况? 我现在唯一的要点是此代码很丑陋,并且不符合标准。 您如何说服开发人员遵循我建议的道路。 还是我在这里完全错了?

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

有示例我如何在Razor MVC中做到这一点

MVC查看代码

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

角度控制器代码,从视图中记录到控制台的CompanyId值

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM