2014-08-28 108 views
2

我在mvc视图内有一个角度控制器。我需要将来自MVC模型的数据传递到角度控制器。目前开发者正在使用ngInit指令来传递这些数据。将数据从MVC模型传递到角度控制器

在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))"> 

我指出,根据角文档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]服务从角控制器获取数据的剩余部分。

开发商拒绝了我的想法说这是更快地只是通过ngInit指令发送,而不必做其他调用来获取数据INTI的角控制器中的所有数据。

你们认为这个方案是什么?我现在唯一的观点是,这个代码是有福的,而且不符合标准。你如何说服开发者遵循我所建议的路线。还是我完全错了?

如果你不得不从MVC模型数据传递到角控制器,你会怎么做呢?

+0

我喜欢所选择的控制台companyId值回答这个:http://stackoverflow.com/questions/22039198/how-can-i-pass-model-to-angular-ng-init – 2014-08-28 08:18:36

+1

我会去$ http服务。我有类似的情况,并使用完全相同的方法。我不知道这是否是一种好的方法,但我不想在初始化函数中传递一百万个参数。 – 2014-08-28 08:19:40

+0

这正是我的看法,但是当向初级开发人员解释这一点时,我可以想出的是,这不符合标准,而且看起来很可笑。我认为我没有接触到他。你会如何解释它? – Kumudu 2014-08-28 09:07:20

回答

0

有样品I如何做到这一点在剃刀MVC

MVC查看代码

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

角控制器代码,记录从视图

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