angularjs - 如何将数据从一个 Angularjs 控制器函数传递到局部视图?
问题描述
我有一个 main.cshtml,并在其中添加了一个局部视图,其中有一个下拉“commentrecipients”。当用户单击链接时,我需要将少量数据(SubmissionID 和 entityOrganizationID)发送到部分视图以填充下拉值。如何在加载时将数据从一个 angularjs 控制器功能发送到另一个控制器 cshtml/.js 以正确处理此部分视图?这可能很简单,但我是新手,你能帮忙吗?
Main.cshtml 视图中的部分视图 -
<div id="submissionCommentPartialViewDiv">
@Html.Partial("_SubmissionCommentActions", new SubmissionHeaderActionViewModel());
</div>
链接在这里:
"<h7>" + "" + "<a href='DisplayCommentDialog' onclick=\"DisplayCommentDialog(" + SubmissionID + "," + EntityOrganizationID + "); return false;\">" + "Add Comment" + "</a><br></h7>" +
这是我的 Angular JS 控制器,我在其中向局部视图发送请求并打开一个模式。在这里我可以访问 SubmissionID、entityOrganizationID
ListSubmissionDashboard.js -
mainApp.controller('submissionDashboardController', ['$rootScope', '$http', '$scope', 'viewDataService', 'stateService', 'utilityService', function ($rootScope, $http, $scope, viewDataService, stateService, utilityService) {
function DisplayCommentDialog(SubmissionID, entityOrganizationID) {
var kendoWindow = $("#dialog").data("kendoWindow");
kendoWindow.close();
$("div.row.submission-header-title").css("display", "");
$('#headerCommentModal').modal({
show: true,
backdrop: 'static',
keyboard: false
});
}
}]);
部分视图:_submissionComment.cshtml。在这里,我需要访问 SubmissionID 和 EntityOrganizationID 并删除硬编码并重新加载 SubmissionHeaderActions.js 以填充commentrecipients 下拉列表。我该怎么做?
@model Foreside.AdCompliance.Domain.Model.Submission.SubmissionHeaderActionViewModel
@{
// Here I need access to SubmissionID and EntityOrganizationID and remove these hardcoding.
var SubmissionID = 516;
var EntityOrganizationID = 214;
Model.EntitySubmissionID = 516;
Model.EntityOrganizationID = 214;
}
<!-- _SubmissionHeaderActions end -->
@Html.Hidden("SubmissionHeaderID", SubmissionHeaderID, new { data_ng_model = "model.SubmissionHeaderID" })
@Html.JsonDataSourceVariable("securitygroupsusers", "SecurityGroupsUsersAccessRight", "Utility", Model.EntityOrganizationID.GetValueOrDefault())
<script>
var dropdownlist = $("#commentrecipients").data("kendoDropDownList");
dropdownlist.refresh();
</script>
<!-- _SubmissionHeaderActions start -->
<div class="stayenabledonclose">
<div class="form-horizontal" ng-controller="submissionHeaderActionsController">
<div id="headerCommentModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="submissionComment-title" style="padding-right:19px;">
<div class="modal-dialog" role="document">
<div id="adcmodal" class="modal-content">
<div id="adcmodal" class="modal-header col-nopadding ">
<h3 class="modal-title" id="submissionComment-title">Submission Comment | SubmissionID: @Model.SubmissionID | EntityOrganizationID : @Model.EntityOrganizationID</h3>
<button type="button" class="close pull-right" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true"><i class="fas fa-times"></i></span>
</button>
</div>
<div class="modal-body submissioncomment-modal-body">
<div class="row form-group spacer">
<div class="col-md-12">
<div class="col-md-12">
@Html.Label("Recipients")
<select id="commentrecipients" class="dirtyignore" kendo-multi-select k-options="securitygroupsusersSelectOptions()"></select>
</div>
</div>
</div>
@Html.Hidden("SubmissionHeaderID", SubmissionHeaderID)
<div class="row form-group spacer">
<div class="col-md-12">
<div class="col-md-12">
@Html.Label("Comment (will be sent to the recipients via email)")
@Html.TextArea("Comment", "", new { @class = "form-control dirtyignore", rows = "2", maxlength = "1000", data_ng_model = "model.comment" })
</div>
</div>
</div>
</div>
<div id="adcmodal" class="modal-footer ">
<input type="button" id="Close" value="Close" class="adcmodal-button" data-dismiss="modal" aria-label="Close" />
<input type="button" id="Send" value="Send" class="adcmodal-button" ng-click="send(@Model.EntityOrganizationID)" />
</div>
</div>
</div>
</div>
</div>
@if (Model.SubmissionID != 0)
{
@Html.SubmissionReassignmentActions(Model.SubmissionID) @* Submission.SubmissionReassignment _SubmissionReassignment*@
}
</div>
@using (Html.RequiredScripts())
{
@Html.RequirePageScript("Submission", "ListSubmissionDashboard")
@Html.RequirePageScript("Shared", "GridPersonalization")
@Html.RequirePageScript("Shared", "SubmissionHeaderActions")
}
解决方案
推荐阅读
- javascript - 仅当我用角度重新加载页面时,如何才能使函数运行?
- vim - 如何在所有缓冲区中获取 vimrc
- mongodb - UpdateMany mongodb 文档,其中包含文档中的值
- javascript - 如何访问 js 对象属性?
- javascript - discord bot通过discord.js中的终端安装错误
- jolt - JOLT - 基于对象值的过滤数组
- css - 如何在没有媒体查询的情况下将 2 个 CSS 网格列变成 1 个用于移动设备?
- powerbi - 在嵌入式 Power BI 报表中默认使用 PageView 传递什么 URL 参数?
- python - 格式化一个 json 然后用 json.load() 打开它
- c - epoll_wait和dup2跨fork交互