在我的應用程序中,我返回了使用此TestViewModel的下面的視圖。如何將MVC模型數據傳遞給AngularJS控制器範圍
public class TestViewModel
{
public List<string> Tests { get; set; }
}
查看:
@model AdminSite.Models.TestsViewModel
@{
ViewBag.Title = "Tests";
}
<hgroup class="title">
<h1>@ViewBag.Title</h1>
</hgroup>
<!doctype html>
<html>
<head>
<script src="~/Scripts/Angular/angular.min.js"></script>
<script src="~/Scripts/Angular/Tests.js"></script>
</head>
<body>
<div ng-app="testsTable">
<div ng-controller="TableController">
<table my-table options="options"></table>
</div>
</div>
</body>
</html>
正如你可以看到我使用AngularJS創建一個DataTable,我想雖然是代替表中的數據「aaData」被硬編碼,我希望它來自TestViewModel模型。
var app = angular.module('testsTable', []);
app.directive('myTable', function() {
return {
restrict: 'A',
link: function (scope, element, attrs, controller) {
var dataTable = element.dataTable(scope.options);
},
scope: {
options: "="
}
};
});
app.controller('TableController', ['$scope', function ($scope) {
$scope.options = {
aoColumns: [
{
"sTitle": "Col 1",
},
{
"sTitle": "Col 2"
},
{
"sTitle": "Col 3"
}
],
aoColumnDefs: [{
"bSortable": true,
}],
bJQueryUI: true,
bDestroy: true,
aaData: [
["A", "B", "C"],
["A", "B", "C"],
]
};
}]);
我想我可能要創建另一個指令模型如
<table my-table options="options" model-data="@Model.Tests"></table>
綁定,但我真的不知道角指令的工作原理究竟,我怎麼會寫說指令&如何它結合範圍
這不是我掙扎與它moreso我如何設置範圍,使用序列化的數據序列化的一部分。 我想真正做到什麼 VAR arrayOfArrays = JSON.parse( '@ Html.Raw(Model.Addresses)') 然後 $ scope.option.aaData = arrayOfArrays – ljsg
你可以在裏面創建此範圍變量您的控制器,然後將值分配給它。我想你正在使用DataTables。如果是這樣,那麼在對數組內容進行cahnge之後,該表應該會更新。在你的HTML中,只需使用{{myVariable = JSON.parse('@ Html.Raw(Model.Addresses)');「」}} – vinagreti
在你的HTML中使用'{{options.aaData = JSON.parse('@ Html .Raw(@ Model.Tests)');「」}}'在表標記之前。讓我知道它是否工作,所以我會編輯我的答案。 – vinagreti