簡體   English   中英

評估在ng-show()中不起作用

[英]Evaluation not working in ng-show()

我試圖在ng-repeat循環的<li>標記中的某些文本旁邊放置一個選中標記圖標。

HTML

<ul>
  <li ng-repeat="nav in tabs.nav">

     {{nav.name}}

     <i class="fa fa-check my-checked-icon"
        ng-show="$index===selectedIndex"
        ng-click="selectNav(nav.index)"></i>

 </li>
</ul>

JS

    $scope.tabs = {
        "navs":[
            {
                "name":"Lorem Ipsum",
                "index":0
            },
            {
                "name":"Adipiscing Elit",
                "index":1
            },
            {
                "name":"Ut Lbore et Dolore",
                "index":2
            }
        ]
    };

    var selectedIndex = 1;
    $scope.selectNav = function(index){
      $scope.selectedIndex = index;
    };

CSS

.my-checked-icon{
  display: none;
}

當我將它們放入{{}}時, $indexselectedIndex打印出正確的值。 而且我嘗試不做大括號以及使用==評估。

我得到錯誤

錯誤:[$ parse:lexerr]詞法分析器錯誤:表達式[“ $ index == selectedIndex”]中0-0列[“]的下一個意外字符。

我在其他地方也看到過人們進行類似評估的其他例子。 問題是什么? 是否有更好的方法以某種方式在控制器內部執行此操作?

嘗試這個

HTML

<ul>
  <li ng-repeat="nav in tabs.navs" ng-click="selectNav(nav.index)">

     {{nav.name}}

     <i class="fa fa-check my-checked-icon"
        ng-show="$index===selectedIndex"
        ></i>
 </li>
</ul>

JS

var ncolor;
      $scope.tabs = {
        "navs":[
            {
                "name":"Lorem Ipsum",
                "index":0
            },
            {
                "name":"Adipiscing Elit",
                "index":1
            },
            {
                "name":"Ut Lbore et Dolore",
                "index":2
            }
        ]
    };

    $scope.selectedIndex = 1;
    $scope.selectNav = function(index){
      $scope.selectedIndex = index;
    };

您的驗證沒有錯。 您正在將selectedIndex聲明為變量。 您應該將其定義為$ scope變量。 因此只有這樣,您才會在右側看到選中圖標。 然后將ng-click移至

  • 這樣,當您單擊它時,復選標記將位於其旁邊。 如果單擊復選標記,它將保留在同一位置,因為索引始終保持不變,並且您無法單擊隱藏的支票

  • 暫無
    暫無

    聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM