我在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控制器,你会怎么做?
答案 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);
}]);