当前位置: 首页 > 面试题库 >

获取和传递MVC模型数据到AngularJS控制器

邬英武
2023-03-14
问题内容

我是AngularJS的新手,在这里我很茫然。

现在,我的MVC程序使用Razor来显示.mdf数据库中的所有数据(即 @ Html.DisplayFor(modelItem = >
item.LastName)
)。但是,我想主要使用Angular。我正在尝试使用ng-
repeat显示所有Model数据,但是我不确定如何将那个Model数据传递给Angular控制器然后使用它。我曾尝试在ng-
init中将模型序列化为JSON,但我认为我做的不正确(显然)。

这是我的代码:

// controller-test.js



var myApp = angular.module('myModule', []);



myApp.controller('myController', function ($scope) {

    $scope.init = function (firstname) {

        $scope.firstname = firstname;

    }

});


<!-- Index.cshtml -->



@model IEnumerable<Test.Models.Employee>



@{

    ViewBag.Title = "Index";

}



<div ng-app="myModule">

    <div ng-controller="myController" ng-init="init(@Newtonsoft.Json.JsonConvert.SerializeObject(Model))">

         <table>

             <tr ng-repeat= <!--THIS IS WHERE I'M STUCK -->

         </table>

    </div>

</div>



<script src="~/Scripts/angular.min.js"></script>

<script src="~/Scripts/controller-test.js"></script>

@Scripts.Render("~/Scripts/angular.js")

我不确定从序列化模型中获取FirstName到底应该重复什么。我感觉自己已经准备就绪,但是不确定如何连接它们。


问题答案:

如果您firstName在Json对象上具有键,例如:

{
 "employees":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter","lastName":"Jones"}
  ]
}

您可以按照以下方式进行操作。

在您的控制器上:

myApp.controller('myController', function ($scope) {
    $scope.init = function (employees) {
        $scope.employees = employees;
    }
});

在您看来:

<table>
    <tr ng-repeat= "employee in employees">
        <td>{{ employee.firstName }}<td>
    </tr>
</table>


 类似资料:
  • 问题内容: 我正在使用剃刀,并且很难将数组传递给控制器​​。数组包含我制作的对象,而我正在尝试这样做: 而我的控制器是: 我不需要使用ajax,但是我不确定该怎么做。在控制器中,它表明“ operationCollection”包含元素,但它们都为空。 问题答案: 客户端: 并声明一个类服务器端,如下所示: 那么您可以执行以下操作:

  • 问题内容: 我试图通过ajax调用将模型传递给控制器​​。 我已经看过Laviak在以下问题中提供的答案,但无法使其正常工作。 运行ajax调用时,MODEL变量出现未定义的错误。我已经确认正在调用助手类,并且正在返回字符串。是否因为AJAX调用位于.js文件中?为什么未定义? 我的代码: Site.Master: 助手类: Javascript文件: 动作方法: 问题答案: 确保在主文件中定义变

  • 问题内容: 我的图像是我试图将数据(变量)从一个阶段传递到另一阶段,但是当我尝试在第二阶段访问它们时,它们为空。mainWindow的代码。前往window1 // window1类: 如果我想访问以前收到的标题,则为null 初始化显示应该为“ Window1”时显示为null} 问题答案: 在加载FXML文件的过程中,将调用该方法-换句话说,在调用时将调用该方法。 显然,这是 在 调用 之前

  • 问题内容: 当使用AngularJS服务尝试在两个控制器之间传递数据时,我的第二个控制器在尝试从该服务访问数据时始终会收到未定义的信息。我猜这是因为第一个服务执行的是$ window.location.href,并且我认为这正在清除服务中的数据?我是否可以将URL更改为新位置,并将数据保留在第二个控制器的服务中?当我运行下面的代码时,第二个控制器中的警报始终未定义。 app.js(定义服务的位置)

  • 我有使用Springboot和Thymeleaf模板编写的简单Web应用程序。报告控制器从表单接收数据并构建TestPlanReportReportACK对象,该对象作为模型属性添加如下: 我可以在“图表”thymeleaf模板中使用该数据并显示我需要的数据,但我需要在单击按钮时将完全相同的对象发送回控制器,但我得到TestPlanReportACK对象作为设置空值的参数。 以下是我的按钮在图表模

  • 我想把一个id作为用户的输入,传递给控制器,得到特定id的数据 当我在URL--http://localhost:8080/student/1中手动传递id时,它就起作用了 Whitelabel错误页面此应用程序没有/Error的显式映射,因此您将其视为一种后退。 Wed Jun 19 11:04:22 IST 2019出现意外错误(Type=内部服务器错误,Status=500)。模板分析过程中