Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 无法在mvc和angularjs的部分视图中获取$scope值_Jquery_Asp.net Mvc_Angularjs_Asp.net Mvc 4 - Fatal编程技术网

Jquery 无法在mvc和angularjs的部分视图中获取$scope值

Jquery 无法在mvc和angularjs的部分视图中获取$scope值,jquery,asp.net-mvc,angularjs,asp.net-mvc-4,Jquery,Asp.net Mvc,Angularjs,Asp.net Mvc 4,我想在我的主目录中加载部分。 这是我的\u layout.cshtml页面 <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title - My ASP.NET Application</title> @Styles.

我想在我的主目录中加载部分。 这是我的
\u layout.cshtml
页面

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - My ASP.NET Application</title>
    @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
    <script src="~/Content/Angular/angular.min.js"></script>
    <script src="~/Content/Angular/ui-bootstrap-tpls.min.js"></script>
    <script src="~/Content/Angular/Module.js"></script>


</head>
<body ng-app="myapp">
    @Ajax.ActionLink("IMR", "Demo", "IMR", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "divBody" })
    <div class="container body-content" id="divBody">
        @RenderBody()
    </div>
    @RenderSection("scripts", required: false)
</body>
这是我的演示部分视图

<script src="~/Content/Angular/IMRController.js"></script>
<div ng-controller="mycntrl">
    {{myname}}
</div>
IMRController.js

var myApp = angular.module('myapp', []);
myApp.controller("mycntrl", function ($scope) {
    $scope.myname = "Amit";
});
但是在demo.cshtml中,我单击IMR,它呈现部分视图,但它不显示
myname
它在浏览器中显示表达式

{{myname}} 

在“角度控制器”中,在窗口上创建全局函数:

window.update = function(){
 var scope = angular.element($("#div-where-ng-app-is")).scope();
    scope.$apply()
}
在asp控件中,成功调用全局函数update():

@Ajax.ActionLink("IMR", "Demo", "IMR", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "divBody", OnSuccess = "window.update()" })

不太清楚asp方面的情况,但我尝试的第一个解决方案是在ajax调用后使用$scope.$apply()触发角度$digest循环,我必须在这里编写
$scope.$apply()
@ajax.ActionLink(“IMR”、“Demo”、“IMR”、新AjaxOptions{InsertionMode=InsertionMode.Replace、UpdateTargetId=“divBody”、OnSuccess=“$scope.$apply()”})$scope未定义您需要从窗口访问$scope,类似于这样的操作:
@Ajax.ActionLink("IMR", "Demo", "IMR", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "divBody", OnSuccess = "window.update()" })