2

AngularJS + Struts 2 を使用して奇妙なエラーが発生しました。

という名前の属性を持つ Java オブジェクトformがあります。booleanpaid

私が書くとき:

<div class="col-sm-10 form-checkbox">
    <s:checkbox name="xxxxx" ng-model="model" 
        ng-init="model = <s:property value = '%{form.paid}' />" 
        theme="simple" />
</div>

FireBug が AngularJS 構文パーサー エラーについて不平を言い、このページに誘導されます。

構文エラーページ

表現ミスを示唆。

そして、私が書くと:

<div class="col-sm-10 form-checkbox">
    <s:checkbox name="xxxxx" ng-model="model" 
        ng-init="%{form.paid}" 
        theme="simple" />
</div>

エラーは報告されません。Struts のタグが で始まるためだと思いますが<、これは Angular では歓迎されません。

ただし、次の行ではエラーは報告されません。

<select ng-model="estadoId" 
        ng-init="estadoId=<s:property value='%{form.estadoId}'/>"
        name="form.estadoId" id="form.estadoId" 
        value="<s:property value='%{form.estadoId}' />"    >

<>では、AngularJS はStruts 2で不満を言っているのですか? または、<s:...>別の内部で使用することも許可されていません<s:...>か? 後者の場合、Struts 2 ではなく Angular をコンプするのはなぜですか??

4

1 に答える 1

3

最初のスニペットでは、Struts タグをネストしています。これは構文エラーです。

<s:checkbox name="xxxxx" 
        ng-model="model" 
         ng-init="model = <s:property value = '%{form.paid}' />" 
           theme="simple" />

2番目のものでは、OGNLで正しくやっていますが、次の部分を省略しましたmodel =:

<s:checkbox name="xxxxx" 
        ng-model="model" 
         ng-init="%{form.paid}" 
           theme="simple" />

正しいバージョンは、次の 2 つを組み合わせたものです。

<s:checkbox name="xxxxx" 
        ng-model="model" 
         ng-init="model = %{form.paid}" 
           theme="simple" />

それ以外の場合は、生の HTML タグを使用できます (<select>例のように、これは標準の HTML タグであり、 ではない<s:select>ため、タグのネストは発生しません)。

<input type="check" name="xxxxx" 
        ng-model="model" 
         ng-init="model = %{form.paid}" />

注: その場合、各チェックボックスの下に隠しパラメータを作成して、<s:checkbox>タグの動作をエミュレートし、Checkbox Interceptorを満足させる必要があります。

于 2015-08-05T14:41:04.043 に答える