2016-10-31 7 views
0

anglejs HTMLビューでJSPスタイルのタグ値にアクセスできますか?たとえば、ブラウザの「principal.firstName」の値を下のタグから取得できますか?これを行うAngularjsの方法はありますか?anglejs HTMLビューでJSPスタイルのタグ値にアクセスできますか?

<sec:authentication property="principal.firstName"/> 

...このサーバーサイドにアクセスしてJSONに戻す必要はありますか?サーバー側にアクセスする必要がある場合は、例を教えてください。見つけたものはすべて、principal.getName()を取得する方法を示しています。

jspページをhtmlに変換しようとしています。

答えて

1

JSONオブジェクトを作成することによって、私は本質的に同じことをすることができました。その値は、サーバーによって記入されるこれらのJSP変数でした。このJSONオブジェクトは、$http.get()関数を使用してAngularによってアクセスされる別のページにすることができます。このよう

{'mySettings': { 
    'userID': <%=user.ID%>, 
    'firstName': '<%=user.first_name%>', 
    'lastName': '<%=user.last_name%>' 
}} 

サーバが<%=whatever%>ディレクティブを処理し、実際のデータとそれらを置き換えます。次に、AngularJSコードがこのJSONを取得してクライアント上で使用するためにhttp.getを発行します。

+0

私はまだこのアプローチのページを.jspを使用する必要がありますように思えますか?本当に.jspページを使用しないようにしようとしています....私は.jsファイルではないjavaの値にアクセスできるようにしたいと思います。 – user2748659

+1

データベースから(おそらく)来る値をJSPページに読み込むために、サーバー側の技術を使用する必要があります。 JSPを使用せずにそれを行うことはできますが、ノードなどの別のサーバー側の技術が必要になります。 –

0

sec:authenticationタグから属性を読み取り、それを変数に渡すディレクティブを作成できます。

jsfiddleの例。

angular.module('ExampleApp', []) 
 
    .controller('ExampleController', function() { 
 
    this.firstName = 1; 
 
    }) 
 
    .directive("myProperty", function() { 
 
    return { 
 
     scope: { 
 
     val: "=myProperty" 
 
     }, 
 
     link: function(scope, elem, attr) { 
 
     scope.val = attr.property; 
 
     } 
 
    } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="ExampleApp"> 
 
    <div ng-controller="ExampleController as vm"> 
 
    <sec:authentication my-property="vm.firstName" property="principal.firstName" />{{vm.firstName}} 
 
    <div my-property="vm.name" property="john doe"></div>{{vm.name}} 
 
    </div> 
 
</div>

+0

コードはうまく見えますが、(私にとって)ビューはJSPファイルにあり、JSPタグが必要です。私は一緒にJSPを回避しようとしています。ありがとう! – user2748659

+0

次に、別の質問をする必要があります。 JSPタグをHTMLページに使用する方法。 HTMLページでJSPタグを使用する方法が不思議です。ここの角度は無関係です。 –

+0

私の質問は正しくありませんでした。私は本当に一緒にJSPタグを避けたいと思っていました。私は本当にそれらのユーザープリンシパル値をサーバー側に取得する方法を尋ねたはずなので、フロントエンドに戻すことができます。 – user2748659

関連する問題