0

AngularJS を Spring MVC アプリに接続しようとしており (この部分はほとんど関係ありません) 、URL を JS コントローラーに渡すAngular の方法は何なのか疑問に思っています。

URL / パスが JS ファイルにハードコードされている多くの例 (ほぼすべて) を目にしますが、長年の MVC 開発者として、これは私を悩ませています。

function MyController($scope, $http) {
    $scope.doSomething = function() {
        $http.get('/someUrl').success(successCallback);
    }
}

JSP で JS 変数を設定するだけでよいことは理解していますが、これは正しい方法とは思えません。

では、Railsなどから Angular コントローラーにURL を渡すAngular の方法は何ですか?<spring:url>url_for(:action => 'some_action')

4

2 に答える 2

1

これには、依存関係として注入できる定数を使用しています。たとえば、次のようになります。

angular.module('myModule', [])
      .constant('urls', {
          'saveUrl': '<c:url value="/save"/>',
          'cancelUrl': '<c:url value="/cancel"/>'
      })
      .controller('someController', function($scope, urls) {
            $scope.saveUrl = urls.saveUrl;
        });

ただし、一部のモデルにもデータを入力したい場合は、少し難しくなります。そのシナリオを処理する方法がわかりませんが、今のところ各サービスの構成セクションを作成しましたが、これはスプリング モデルをループしてコンテンツを追加します。しかし、angular にページへの送信を実行させ、json 呼び出しを介してすべてのデータを取得させることで、これをより適切に行うことができます。ただし、これは、呼び出しページが既にこれを実行できる必要があることを意味します。

于 2014-01-07T09:28:16.453 に答える
0

わかりました、私はこのアプローチを取りましたが、私はまだ他の人から話を聞くことに非常に熱心です

<form name="myForm" ng-submit="submit('<spring:url value="/someUrl" />', myModel)" novalidate>

...そしてこれはコントローラーで

$scope.submit = function(url, model) { // ...
于 2013-01-21T04:00:35.783 に答える