問題タブ [adobecreativesdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Angular ng-show が一貫して機能しない
問題
Adobe Creative SDK を Angular アプリに統合しようとしています。エディターは、ボタンをクリックしてフォト ビューアー モーダルから初期化されます。これにより、以下の関数がトリガーされます。エディターが初期化されると、onReady
コールバックによってフォト ビューアーの要素が非表示になり、エディターがモーダルに追加されます。この部分はうまく機能します。
私のモーダルDOMでは、エディターが開いているかどうかに応じて、表示または非表示にしたい要素を使用しようng-show="editorOpen"
としています。ng-show="!editorOpen"
初めてトリガーすると、期待どおり$scope.editPhoto
にng-show
動作します。ただし、エディターを閉じるとng-show
、DOM の更新に失敗します。エディターは非表示になりますが、非表示のフォト ビューアー要素は非表示のままです。
私は Angular のダイジェスト サイクルの専門家ではありませんが、私の調査からわかったことから、ダイジェスト サイクル中にhidePreview()
および関数が呼び出され、への変更が登録されないことが問題であると考えています。showPreview()
ng-show
$scope.editorOpen
エディターを閉じてng-show
DOM の更新に失敗した場合でも、アプリ内でダイジェスト サイクルをトリガーする別のアクションを実行することで手動でトリガーできます。たとえば、左右の矢印キーを使用して次の写真に移動しようとするなどです。ビューアモーダル。
しかし、ここからさらに奇妙になります。エディターを閉じて手動でダイジェストをトリガーすると、すべてが正常に見えます。エディターをもう一度開くと、ng-show
先ほど説明した方法を使用してダイジェストを手動でトリガーしようとしても、完全に機能しなくなります。
私が試した解決策
問題を解決するためにこのディスカッションで提供されたすべての解決策を含め、可能な修正をいくつか試しましたが、すべて失敗しました。
- ダイジェストをトリガーする必要があるため、関数でラップ
$scope.editorOpen = true
してみました。遅延を0msと10msに設定してみました。どちらも失敗しました。$scope.editorOpen = false
$timeout
- 以下のコードにあるおよび関数の代わりに、
$scope.toggleEditor
トグルするスコープ関数を作成し、$scope.editorOpen
それを Adobe Creative SDK 画像エディターのonSave
、onReady
、およびコールバックに渡しました。それも失敗しました。onClose
showPreview()
hidePreview()
$scope.editPhoto
関数全体を関数にラップしてみました$timeout
。また、失敗しました。- 関数内
$scope.$apply()
だけでなく、手動で呼び出すというより直接的なアプローチを試みました。これは通常、エラーが発生する前に一度だけ機能し、悪い習慣のような匂いがします。$scope.$digest()
showPreview()
hidePreview()
$rootScope:inprog
- 最後に、もっと必死になっ
if (!$scope.$$phase) $scope.$apply()
て、ひどい習慣にもかかわらず、問題が解決するかどうかを確認するために を試しました。当然のことながら、#4 と同様に失敗しました。
コード
私のコントローラーには、次の機能があります。
私の見解では、モーダルにある次の div があります。
javascript - プログラムで鳥小屋/羽毛で画像を編集しますか?
Aviary/Feather でコマンドを実行する方法はありますか? たとえば、画像を編集したいが、最初に JavaScript を使用してトリミングしたいとします (ユーザーに特定の比率にトリミングするよう依頼するのではなく)。許可されたクロップ比率を設定できることはわかっていますが、これを自動的に行い、クロップがデフォルトで確実に適用されるようにする方法が必要です。
java - Gradle ビルド中の Aviary-SDK エラー (Android)
Aviary セットアップ ガイドのすべてのステップをコピーしました。Gradleのビルド中に、次のようになります。
エラー: 'default' という名前の構成が見つかりません。
インストールガイド:
Adobe Creative SDK ドキュメント
Aviary SDK | Android ドキュメント
ファイル:
settings.gradle:
build.gradle(モジュール: アプリ)
ios - iOS プロジェクトで Adobe のクリエイティブ SDK がクラッシュする
1.私は実際にドキュメントに従っています
2.クラッシュの理由は +[AVYContentPack installIndexUpdateContext]: unrecognized selector sent to class 0x100407cf0 ですが、クリエイティブ SDK に AVYContentPack という名前のクラスが見つかりません
3.わかりません。この問題を解決するのを手伝ってくれませんか?</p>