【发布时间】:2014-08-28 08:13:10
【问题描述】:
我在 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 控制器,你会怎么做?
【问题讨论】:
-
我喜欢这个选择的答案:stackoverflow.com/questions/22039198/…
-
我会选择 $http 服务。我确实有类似的情况并使用完全相同的方法。我不知道这是否是一个好方法,但我不想在 init 函数中传递一百万个参数。
-
这正是我的观点,但在向初级开发人员解释这一点时,我能想到的只是这不符合标准,而且看起来很模糊。我不认为我得到了他。你会怎么解释呢?
-
还有其他人对此有什么意见吗?
标签: javascript asp.net-mvc angularjs