1

ネットで調べてみたのですが、なかなか良い答えが見つかりません...

これは、コントローラー/アクション URL を Angular に渡す正しい方法ですか?

<div ng-controller="MainCtrl" 
    ng-init="getScheduleUrl = '@(Url.Action("GetSchedule"))'">

またはそれを行うより良い方法はありますか?渡す URL が多数ある場合、これは非常に面倒な処理になる可能性があります。

4

2 に答える 2

2

こんにちは、多くのアプローチがありますが、私はこれが好きです:

通常、私のホーム/インデックスビューで

<script>
  angular.module('app').factory('dataStrap', function ()
    {

        var _data = @Html.Raw(ViewBag.Json);
        var _getScheduleUrl = @(Url.Action("GetSchedule");
        //or 
        var _someUrls =[
                          {urla: @(Url.Action("GetSchedule")}
                          {urlb: @(Url.Action("GetSchedule")}
                        ];
        return {
            data : _data,
            getScheduleUrl : _getScheduleUrl,
            someUrls :_someUrls 
        }

   angular.module('app').controller('myController', function($scope, dataStrap){

       $scope.ScheduleUrl = dataStrap.getScheduleUrl;

   })

</script>

その後、任意のコントローラーに dataStrap を注入できます。

于 2014-07-17T22:54:12.230 に答える