Jquery Angular MVC将Angular Controller移动到分离文件。。现在如何加载@Model?

Jquery Angular MVC将Angular Controller移动到分离文件。。现在如何加载@Model?,jquery,asp.net-mvc,angularjs,asp.net-mvc-4,Jquery,Asp.net Mvc,Angularjs,Asp.net Mvc 4,我正在使用Angular和MVC 我在html页面上用 @模型包含我用于$scope主模型的模型数据 <script> var runApp = angular.module('runApp', []); runApp.controller('DistanceController', function($scope, $http) { $scope.running = @Html.Raw(Json.Encode(Model)); $scope.err

我正在使用Angular和MVC

我在html页面上用

@模型包含我用于$scope主模型的模型数据

<script>
    var runApp = angular.module('runApp', []);
    runApp.controller('DistanceController', function($scope, $http) {

    $scope.running = @Html.Raw(Json.Encode(Model));
    $scope.errorMessage = @Html.Raw(Json.Encode((@TempData["ErrorMessage"])));
    ....
}
</script>
我需要建立一个模型


我敢打赌,这对外面的人来说一定很容易。但是我被卡住了:(

你可以在你的html页面(MVC视图页面)上这样做,添加:

angular.module('runApp').factory('dataBoot', function(){

   running = @Html.Raw(Json.Encode(Model));
   errorMessage = @Html.Raw(Json.Encode((@TempData["ErrorMessage"])));

  retrun {
    running: running,
     errorMessage: errorMessage

  }


});
之后,您可以将dataBoot注入控制器,并以这种方式访问running和errorMessage:

runApp.controller('DistanceController', function($scope, $http, dataBoot) {

        $scope.running = dataBoot.running;
        $scope.errorMessage =dataBoot.errorMessage;
        ....
    }

您还可以使用ng init指令,并且您使用的属性将在该特定元素的作用域中可用

<div ng-controller="DistanceController" ng-init="running = @Html.Raw(Json.Encode(Model))">
    ...
</div>

...

对于初学者的问题很抱歉,但是..app.factory是一个var吗?它会像这个var app.factory('dataBoot',function(){running=@Html.Raw(…);errorMessage=@Html.Raw(…);return{running:nunning,errorMessage:errorMessage}}啊那个应用程序..好的,稍等一下..让我来测试一下
<div ng-controller="DistanceController" ng-init="running = @Html.Raw(Json.Encode(Model))">
    ...
</div>