簡體   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