【问题标题】:Passing data from MVC model to an Angular Controller将数据从 MVC 模型传递到 Angular 控制器
【发布时间】: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


【解决方案1】:

我在 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);
 }]);

【讨论】:

    猜你喜欢
    • 2010-11-25
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多