Angularjs 如何在Asp.NETMVC视图中插入/访问$scope服务对象

Angularjs 如何在Asp.NETMVC视图中插入/访问$scope服务对象,angularjs,razor,angularjs-scope,Angularjs,Razor,Angularjs Scope,我是AngularJS新手,但对Asp.net MVC有一些工作知识。现在我遇到了一个问题,需要在MVC视图中访问javascript块中AngularJS的$scope对象 我的代码: -------- <script> var mode = "@ViewBag.Mode"; if (mode == "Edit") { var riskJSON = @Html.Raw(JsonConvert.DeserializeObject(ViewBag.

我是AngularJS新手,但对Asp.net MVC有一些工作知识。现在我遇到了一个问题,需要在MVC视图中访问javascript块中AngularJS的$scope对象

我的代码: --------

<script>

    var mode = "@ViewBag.Mode";

    if (mode == "Edit") {

        var riskJSON = @Html.Raw(JsonConvert.DeserializeObject(ViewBag.RISKS));

        $scope.riskrefno = riskJSON.RiskRefNo;
        $scope.enquirydate = riskJSON.EnquiryDate;
        $scope.insuredname = riskJSON.InsuredName;
        $scope.insuredaddress = riskJSON.InsuredAddress;

}
<script>

var mode=“@ViewBag.mode”;
如果(模式==“编辑”){
var riskJSON=@Html.Raw(JsonConvert.DeserializeObject(ViewBag.RISKS));
$scope.riskrefno=riskJSON.riskrefno;
$scope.inquiryDate=riskJSON.inquiryDate;
$scope.insuredname=riskJSON.insuredname;
$scope.insureddress=riskJSON.insureddress;
}
使用上述代码,我得到以下错误:“0x800a1391- JavaScript运行时错误:“$scope”未定义”

您能否建议一个解决方案,说明如何将$scope服务对象注入MVC razor视图


谢谢。

从您的代码中不太清楚,这个范围与哪个html元素关联。记住作用域有一个约束存在。唯一全局可用的作用域是
$rootScope

要从angular外部的全局上下文访问$rootScope,您需要使用
angular.element
函数获取应用程序根,然后调用scope函数。比如:

var$scope=angular.element('body').scope();//这将返回根范围


这个例子假设你在body标签上添加了
ng app

我不是一个喜欢剃须刀的人,所以请恕我直言。但是,
$scope
实际上只能在注入角度函数的内部进行访问。在这种情况下,它看起来应该位于控制器中。