ディレクティブがバインドされた要素をレンダリングしないのはなぜですか?

ProfK

これは、Angularでのng-repeatを使用した再帰に関する私の質問に基づいていますが、重複するものではありません。今、私はそれを行う方法を知っていますが、問題に対する私の現在の解決策が機能していない理由を尋ねています。

私は巨大なMetronicAngularテーマを適応させるのに忙しく、私の最初のタスクは、RESTAPIからサイドメニュー項目を動的にロードすることです。メインindex.htmlページ(使用されているページのみ:スパを行っている)のサイドメニーのコンテナは次のようになります。

<div data-ng-include="'tpl/sidebar.html'" data-ng-controller="SidebarController" class="page-sidebar-wrapper"></div>

次に、sidebar.html次のようになります。

<div class="page-sidebar navbar-collapse collapse">
    <ul class="page-sidebar-menu" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200"
        ng-class="{'page-sidebar-menu-closed': settings.layout.pageSidebarClosed}"
        rsng-menuItem="menuItems">
    </ul>
</div>

rsng-menuItemメニューツリーを再帰的に使用するために使用されるカスタムディレクティブ、に気付くでしょう

angular.module("ReflexPortalApp").directive("rsngMenuItem", ["$parse", function ($parse) {
    return {
        restrict: "A",
        scope: true,
        templateUrl: "/tpl/sidebar/menu-item.html",
        link: function (scope, element, attrs) {
            scope.List = $parse(attrs.rsngMenuItem)(scope);
        }
    }
}]);

テンプレートは次のようになります。

<li ng-repeat="item in List" ng-class="{\'nav-item\': !item.IsHeading, \'start\': item.IsStart}">
    <a href="{{item.Href}}" ng-class="{\'nav-link nav-toggle\': item.subItems && item.subItems.length > 0}">
        <i ng-if="{{item.Icon && item.Icon.length > 0}}" class="icon-{{item.Icon}}"></i>
        <span class="title">{{item.Text}}</span>
        <span ng-if="{{item.DecorClass || item.DecorText}}" class="{{item.DecorClass}}">{{item.DecorText}}</span>
    </a>
    <ul rsng-menuItem="item.subItems" class="sub-menu"></ul>
</li>

SideBarController1, the menu items do load successfully from the REST API, and are assigned to themenuItems`スコーププロパティなので、彼らは、結合のために利用可能であるべきです。

最後に、メニュー項目はJSONでは次のようになります。

{
  "IsDisabled": "0",
  "seq": 2,
  "Href": "javascript:;",
  "Id": "2",
  "IsStart": "0",
  "IsNavItem": "1",
  "DecorText": null,
  "ApiCall": null,
  "Index": 3,
  "Text": "Accounting",
  "Icon": "settings",
  "ParentId": null,
  "DecorClass": "arrow",
  "subItems": [
    {
      "DecorClass": "arrow",
      "ParentId": "2",
      "Icon": "wrench",
      "Text": "Statement",
      "Index": 1,
      "ApiCall": "statement&CustID=4446&statementdate=2016-05-01",
      "DecorText": null,
      "IsNavItem": "0",
      "IsStart": "0",
      "Id": "3",
      "Href": "list",
      "seq": 1,
      "IsDisabled": "0"
    }
  ]
}

始めたとき、テンプレートで再帰を行う方法がわからなかったので、再帰コードループとjQueryを使用して、各メニュー項目のすべての要素を「手動で」構築してデータを入力しました。これは問題なく機能しましたが、HTMLを記述していました。コードリテラルは悪臭を放ちます。

今、私はコンソールにエラーがなく(Angularのその部分が大好きです)、空のサイドメニューを取得し、明らかに間違ったことをしているのではないかと思っていました。

ヨハネスロイター

問題はディレクティブ名にあります。angularは属性名の大文字をうまく処理できないため、ディレクティブを認識しません。名前rsng-menuItemをに変更しrsng-menu-itemます。

ただし、ディレクティブを角度で再​​帰的にネストすることはできないため、これは機能しません。無限ループで終了します。

これには複数の解決策があります。Angularディレクティブの再帰https://github.com/marklagendijk/angular-recursionをご覧ください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

カスタムangularjsディレクティブを使用するとHTMLコードがレンダリングされないのはなぜですか

分類Dev

なぜangularjsディレクティブリンク関数で双方向バインディングが定義されていないのですか?

分類Dev

バインドされたオブジェクトのプロパティにアクセスしようとすると、Xamarinが何もレンダリングしないのはなぜですか?

分類Dev

このプロパティがディレクティブのスコープにバインドされていないのはなぜですか?

分類Dev

リンクされたライブラリの必要なバージョンが見つかるまで、Unix / Linuxシステムがディレクトリをトラバースしないのはなぜですか?

分類Dev

リンクされたライブラリの必要なバージョンが見つかるまで、Unix / Linuxシステムがディレクトリをトラバースしないのはなぜですか?

分類Dev

ディレクティブでこのフィールドがバインドされないのはなぜですか?

分類Dev

モバイルChromeが参照されたSVGをレンダリングしないのはなぜですか?

分類Dev

CreateFile( "CONOUT $" ...)を使用してコンソールをアクティブな画面バッファーにリダイレクトした後、テキストの色が表示されないのはなぜですか?

分類Dev

テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

分類Dev

ng-repeatを使用したディレクティブ双方向バインディングがモデルにバインドされていない

分類Dev

`terminal:true`を指定したAngularJS1ディレクティブは、式のレンダリングを無効にします。なぜですか?

分類Dev

Xiaomiデバイスでサイレントモードがアクティブ化されないのはなぜですか?

分類Dev

アイテムを削除した後、Blazorサーバー側の@refが正しくレンダリングされないのはなぜですか?

分類Dev

Nginx:インデックスディレクティブが機能しないのはなぜですか、403は禁止されていますか?

分類Dev

clangを使用して2段階のコマンドラインビルドでdSYMディレクトリが生成されないのはなぜですか?

分類Dev

Jadeがng-viewディレクティブで要素を正しくレンダリングしない

分類Dev

反応ネイティブのアニメーションビューがレンダリングされないのはなぜですか?

分類Dev

ディレクティブのリンク関数で$ scopeに加えられた変更がUIに反映されないのはなぜですか?

分類Dev

リンク関数にロードされた日付が、ディレクティブで作成されたhtmlにバインドされるのはなぜですか?

分類Dev

テーブルデータがレンダリングされないのはなぜですか?

分類Dev

AngularJSディレクティブがレンダリングされない

分類Dev

バックグラウンドデスクトップに対してディスプレイがクリアにならないのはなぜですか?

分類Dev

バックグラウンドデスクトップに対してディスプレイがクリアにならないのはなぜですか?

分類Dev

Angular:ng-repeat内のSVGディレクティブが正しくレンダリングされない

分類Dev

Angularのリアクティブフォームバインディングが@Inputを必要としないのはなぜですか?

分類Dev

ng-optionsとcontrollerAsを使用するこのAngularドロップダウンディレクティブが機能しないのはなぜですか?

分類Dev

マウントポイントとして機能するディレクトリへのコピー操作で、マウントされたドライブにデータがコピーされないのはなぜですか?

分類Dev

リストアイテム要素にパディングが適用されないのはなぜですか?

Related 関連記事

  1. 1

    カスタムangularjsディレクティブを使用するとHTMLコードがレンダリングされないのはなぜですか

  2. 2

    なぜangularjsディレクティブリンク関数で双方向バインディングが定義されていないのですか?

  3. 3

    バインドされたオブジェクトのプロパティにアクセスしようとすると、Xamarinが何もレンダリングしないのはなぜですか?

  4. 4

    このプロパティがディレクティブのスコープにバインドされていないのはなぜですか?

  5. 5

    リンクされたライブラリの必要なバージョンが見つかるまで、Unix / Linuxシステムがディレクトリをトラバースしないのはなぜですか?

  6. 6

    リンクされたライブラリの必要なバージョンが見つかるまで、Unix / Linuxシステムがディレクトリをトラバースしないのはなぜですか?

  7. 7

    ディレクティブでこのフィールドがバインドされないのはなぜですか?

  8. 8

    モバイルChromeが参照されたSVGをレンダリングしないのはなぜですか?

  9. 9

    CreateFile( "CONOUT $" ...)を使用してコンソールをアクティブな画面バッファーにリダイレクトした後、テキストの色が表示されないのはなぜですか?

  10. 10

    テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

  11. 11

    ng-repeatを使用したディレクティブ双方向バインディングがモデルにバインドされていない

  12. 12

    `terminal:true`を指定したAngularJS1ディレクティブは、式のレンダリングを無効にします。なぜですか?

  13. 13

    Xiaomiデバイスでサイレントモードがアクティブ化されないのはなぜですか?

  14. 14

    アイテムを削除した後、Blazorサーバー側の@refが正しくレンダリングされないのはなぜですか?

  15. 15

    Nginx:インデックスディレクティブが機能しないのはなぜですか、403は禁止されていますか?

  16. 16

    clangを使用して2段階のコマンドラインビルドでdSYMディレクトリが生成されないのはなぜですか?

  17. 17

    Jadeがng-viewディレクティブで要素を正しくレンダリングしない

  18. 18

    反応ネイティブのアニメーションビューがレンダリングされないのはなぜですか?

  19. 19

    ディレクティブのリンク関数で$ scopeに加えられた変更がUIに反映されないのはなぜですか?

  20. 20

    リンク関数にロードされた日付が、ディレクティブで作成されたhtmlにバインドされるのはなぜですか?

  21. 21

    テーブルデータがレンダリングされないのはなぜですか?

  22. 22

    AngularJSディレクティブがレンダリングされない

  23. 23

    バックグラウンドデスクトップに対してディスプレイがクリアにならないのはなぜですか?

  24. 24

    バックグラウンドデスクトップに対してディスプレイがクリアにならないのはなぜですか?

  25. 25

    Angular:ng-repeat内のSVGディレクティブが正しくレンダリングされない

  26. 26

    Angularのリアクティブフォームバインディングが@Inputを必要としないのはなぜですか?

  27. 27

    ng-optionsとcontrollerAsを使用するこのAngularドロップダウンディレクティブが機能しないのはなぜですか?

  28. 28

    マウントポイントとして機能するディレクトリへのコピー操作で、マウントされたドライブにデータがコピーされないのはなぜですか?

  29. 29

    リストアイテム要素にパディングが適用されないのはなぜですか?

ホットタグ

アーカイブ