ネットで調べてみたのですが、なかなか良い答えが見つかりません...
これは、コントローラー/アクション URL を Angular に渡す正しい方法ですか?
<div ng-controller="MainCtrl"
ng-init="getScheduleUrl = '@(Url.Action("GetSchedule"))'">
またはそれを行うより良い方法はありますか?渡す URL が多数ある場合、これは非常に面倒な処理になる可能性があります。
ネットで調べてみたのですが、なかなか良い答えが見つかりません...
これは、コントローラー/アクション URL を Angular に渡す正しい方法ですか?
<div ng-controller="MainCtrl"
ng-init="getScheduleUrl = '@(Url.Action("GetSchedule"))'">
またはそれを行うより良い方法はありますか?渡す URL が多数ある場合、これは非常に面倒な処理になる可能性があります。
こんにちは、多くのアプローチがありますが、私はこれが好きです:
通常、私のホーム/インデックスビューで
<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 を注入できます。