0

Liferay ポートレットに AlloyUI を含めていくつか問題があります。この記事に従って、次の jsp を生成しました。

<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>

<input type="text" id="some-input" />
<span id="counter"></span> character(s) remaining

<aui:script>
YUI().use(
  'aui-char-counter',
  function(Y) {
    new Y.CharCounter(
      {
        counter: '#counter',
        input: '#some-input',
        maxLength: 10
      }
    );
  }
);
</aui:script>

しかし、レンダリングされたページは次のようになります。

フィールドが機能しない

taglib が次のファイルで正しく定義されていることを確認しましたweb.xml

<taglib>
    <taglib-uri>http://liferay.com/tld/aui</taglib-uri>
    <taglib-location>/WEB-INF/tld/aui.tld</taglib-location>
</taglib>

次のようにjspに含めると、AUIは機能します。

<script src="http://cdn.alloyui.com/2.0.0/aui/aui-min.js"></script>
<link href="http://cdn.alloyui.com/2.0.0/aui/aui-min.js" rel="stylesheet"></link>


<input type="text" id="some-input" />
<span id="counter"></span> character(s) remaining

<script>
YUI().use(
  'aui-char-counter',
  function(Y) {
    new Y.CharCounter(
      {
        counter: '#counter',
        input: '#some-input',
        maxLength: 10
      }
    );
  }
);
</script>

現場作業

Liferay 6.1.20 EE GA2を使用しています

4

2 に答える 2

0

この char カウンター コードの AlloyUI にアクセスするために必要なのは、シード ファイルの宣言だけです。

<script src="http://cdn.alloyui.com/2.0.0/aui/aui-min.js"></script>

web.xml に taglib 参照は必要ありません。実際、シード ファイルへのアクセスを禁止しています。参照している taglib は、予想される AlloyUI のバージョンと矛盾している可能性があります。

また、YUI の CharCounter にアクセスしても問題ありません。http://alloyui.com/api/classes/A.CharCounter.htmlで API の例を参照してください。

于 2014-06-11T18:18:30.027 に答える